web-dev-qa-db-ja.com

Excel VBA内のInternet Explorerインスタンスを閉じる方法

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を使用しています。

5
Access

@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つのインスタンスを開いているが、最後にどちらのインスタンスも閉じていないことです。

9
Access