投稿者 魔界の仮面弁士  (社会人) 投稿日時 2024/4/5 19:40:20
インストール後に Office の起動経験が無かった場合に外部から起動しようとすると、
初回起動時にオートメーション エラーになることがありますが、今回はそれとは違いそうですね。
(この問題は、追加認証が必要とされたり、あるいはアドバタイズ インストール要求が発生するといった理由によるもの)


> エラーは以下になっていました。
Office の再インストールでも回復しない状況でしょうか?


> CLSID {00024500-0000-0000-C000-000000000046} を含むコンポーネントの COM クラス ファクトリ
このクラス識別子は Excel.Application のことを示しています。
MsgBox(Type.GetTypeFromProgID("Excel.Application").GUID.ToString())

なのでそのメッセージから読み取れる情報とは、Excel.Application のクラスファクトリ絡みであるという点、
すなわち「New Excel.Application を呼び出そうとして失敗した」という事柄だけです。

それゆえ調査においては、そのあとの「次のエラーが発生しました」の方のメッセージも重要になりえます。
まぁ、それでも断片的な情報しか得られないことは多いのですが。


> 「Microsoft Office Home and Business 2019-ja-jpが・・・再開しました」
さて、何でしょうね。
「再開」ということは、何らかの予期せぬエラーもしくはセキュリティによるブロックによって
起動直後に意図せず終了されてしまう事象が起こり、その後、自動再起動で復帰されている可能性、とか。
その場合、VB 側からのオートメーションで通信が切れてしまうことになり、
0x80080005 (CO_E_SERVER_EXEC_FAILURE) に繋がってしまう…という状況を想像してみました。


> セキュリティーソフトが関係している可能性もあるのでしょうか?
無いとは言えないですね。

本件の事象とは異なるものの、セキュリティソフトの監視の停止だけでは改善せず、
セキュリティソフト自体をアンインストールしないと正しく起動しない問題があることは
私自身が経験したことはあります。もちろん、今回の事象が該当するかどうかは分からないですが。
(私の時は、セキュリティソフト側のメジャーバージョン更新が必要でした)

セキュリティソフトが関係しているかどうかは、そのソフトを一時的に止めてみるなり
アンインストールしてみることで確認してみてください。


> プログラムょ変更する以前は出なかったエラーなのですが、変更しようとして急にエラーになってしまいました。
(1) 開発環境の Office のメジャーバージョンが更新された
(2) 開発環境または実行環境で、異なるバージョンの Office が並行インストールされた
(3) Office の再インストールで 32bit版/64bit 版の入れ替えが行われたが、以前のレジストリ情報の断片が残留していた
などによって、インターフェイスの互換性に問題が生じることで、一部のメソッド呼び出しが失敗することがあります。

とはいえ (1) については、エラーが出るなら New Excel.Application よりも、そのあとのタイミングになりそうです。


> タスクスケジューラーに問題があるとすると
これは Office という製品が、デスクトップ ユーザーとの対話(attended)を前提とした設計になっており、
サービス等からの無人実行で呼ばれること(unattended)が考慮されてはいないという事から、、
タスクスケジューラーからの実行には向いていない……という話かと思います。

今回は、デスクトップ アプリ上の ToolStripMenu をユーザー操作して Excel.Application を
起動する形のようですし、タスクスケジューラーから実行する予定が無いのであれば、
この点については気にしなくても良いと思いますよ。

無人実行を保証していないという点に関する参考資料としてはこのあたり。
https://support.microsoft.com/ja-jp/topic/48bcfe93-8a89-47f1-0bce-017433ad79e2
https://learn.microsoft.com/ja-jp/office/client-developer/integration/considerations-unattended-automation-office-microsoft-365-for-unattended-rpa