IEインスタンスを開き、URLからデータを抽出し、インスタンスを再び閉じると思われるExcel VBAマクロを実行しています。
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
Set IE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
' Do stuff...
' Clean up
IE.Quit
Set IE = Nothing
そのメソッドを調べたところ、IEインスタンスを閉じることになっています。ただし、これは機能しません。タスクマネージャーがiexplorer.exe
プロセスはまだ実行中です。マクロを数回実行すると、新しいインスタンスが追加され、決して閉じられません。
マクロでインスタンスを適切に閉じるにはどうすればよいですか?
IE 8.0とVBA 7.0を使用しています。
@Sorceriはコメントで正しいと述べているので、2つのインスタンスを作成しました。次のコードは問題なくインスタンスを終了します。
Dim IE As Object
Set IE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
' Do stuff...
' Clean up
IE.Quit
Set IE = Nothing
上記の(間違った)コードについて興味深いのは、彼が実際に2つのインスタンスを開いているが、最後にどちらのインスタンスも閉じていないことです。