Excelマクロで発生したエラーとその回避方法(H80004005)

Excelマクロで発生したエラーとその回避方法(H80004005)

Excelマクロで発生したエラーとその回避方法

とある企業様から「ECモールへ自動ログインして必要なデータを取得するスクリプトを組めないか」とご相談を頂き、こんな回答をさせて頂きました。

Excelマクロが最も『小さく』『簡単』にできると思います

結果、これがExcelのエラーにかち合ってしまうという大問題の回答だったのですがそんな事は知るはずもなく…。
と言う事で、頂いたご依頼についてはVBSで作る事にしたのですが単体で動かすなら回避方法もあるので備忘録です。

システムエラーです:&H80004005(-2147467259)エラーを特定できません。


これが出会ったエラーです。
調べてみると2016年から同様の記事がWEB上に存在しているので、よくヤラかす更新エラーと言う事なのでしょう。

例えばこんな記事があります。

問題の発生原因について

マイクロソフト側のUpdateにて日本語を含むファイルの外部参照がある場合エラーを吐きだしていたようです。
外部参照と言っても、同一ファイル内の別タブを参照していてもNGなので厳密には『日本語が含まれていたら発生していた』と言う事ですね。※参照:マイクロソフト該当ページ

回避方法について

ルートは2つあります。

  1. 2020/06/03マイクロソフト提供の修正パッチを適応する
  2. 問題のアップデートプログラムを手動で削除する

1に記載の通り、既にマイクロソフトから2020/06/03に修正パッチが提供されています。
その為、この修正パッチをあてるのが最も簡単な修正方法になります。

2で対応する場合は次の更新プログラムを削除してみてください。

Excel2010を利用 … Windows Update 更新プログラムから、KB4484285を削除。
Excel2013を利用 … Windows Update 更新プログラムから、KB4484283を削除。
Excel2016を利用 … Windows Update 更新プログラムから、KB4484273を削除。

これで修正を加えたPCではエラー発生なく処理が進みます。

毎日運用するシステムとしてどうなのよ」という疑問

WEBの情報を確認すれば、エラーコード[ H80004005 ] は2016年から存在が確認できます。
そのどれもが『日本語のモジュール名やフォーム名を持つ Office ファイルを開くときにエラーが発生する動作』として公表されています。

給与ソフトだったら社員名は日本語ですし、今回作成依頼を受けたWEBスクレイピングでも楽天市場と記載すれば日本語です。日本人が使う際に使い易さを考えればどうしても【日本語】の登場は避けられません。

その日本語が切っ掛けのエラーが多発している状況は毎日運用したいシステムの着地点としてどうなのか大いに疑問です。

最良はPHPやPythonと言ったスクリプト言語で書いてしまう事でしょうけど、これはサーバーの用意やら何やらとコストが増大していきますよね。
で、今回【 WSH/VBS 】を選択するに至った訳です。

まとめ

試してみませんでしたが、VBAでも同じエラーあったのかな?

更新プログラムで発生するエラーなんぞはプログラマ側からすると「ふざけんな!」以外の何物でもないのですが、個々のPCのアプリまで管理監督するわけにもいきませんから、他の手段による回避が妥当な所かと思います。

VBSの問題点はマックPCで利用できない事。

これどうやって解決するかな…。やっぱサーバー立ち上げるしかないかなぁ。