日々精進

新しく学んだことを書き留めていきます

VBAでCreateObject("InternetExplorer.Application")を実行すると「オートメーションエラーです。 システムのシャットダウンは既にスケジュールされています。」エラー

原因はIEを操作するたびにCreateObjectで生成したIEオブジェクトを生成・破棄していたこと。 IEオブジェクトを破棄してもすぐに消えて無くなるわけではなく、 「システム(つまりIEのこと)のシャットダウンがスケジュールされた」状態になるっぽい。 解決案は以下。

  • 案1 CreateObject実行時にIEオブジェクトの状態をチェックし、生成してよくなるまで待つ
  • 案2 プログラム起動時にIEオブジェクトを生成しその後それを使い回す

案2の方がお手軽なので案2で対応した。

参考: