【UWSC】IE起動時のCOM ERRORについて【InternetExplorer】

IE = CreateOLEObj("InternetExplorer.Application")

上記実行時に以下のようなポップアップを見たことがないだろうか?

無題

特に起きやすいのが、初回は問題なく複数回利用すると発生する。
該当のオートメーションエラーは

IEオブジェクトはQuitしてもプロセスが残っていることがあります。このプロセスが削除される前に再度オブジェクトをCreateしようとすると、QuitしたIEを再使用しようとして使用できずエラーとなるようです。

引用元:https://teratail.com/questions/246136

上記が原因なので以下コードにて回避方法を考えた。

IE = IEStart()
IE.navigate("https://www.yahoo.co.jp/")

//--------------------------------------------------------

Function IEstart(VIS=true)
 IE = 0
 while 1
  COM_ERR_IGN
  IE = CreateOLEObj("InternetExplorer.Application")
  COM_ERR_RET
  if IE > 0
   break
  else
   sleep(1)
  endif
 wend
 IE.visible = VIS
 
 Result = IE
Fend

whileループもCOMエラーメッセージの抑止も逐一書くのは非常に煩雑なのでFunction化した。

IEを起動する際は、
IE = IEStart()
にて
IE = IEStart(false)
falseを指定するとウィンドウを非表示にもできる。
(※COMエラーが解消されるまで待つので、ウィンドウの表示に時間がかかることもあります。)


この記事が気に入ったらサポートをしてみませんか?