- ベストアンサー
vbaでIEを閉じるだけの処理
オフィス2003を使用しています。 「IEを開いて閉じる」は Sub TEST() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True '見えるようにする '文字列で指定したURLに飛ぶ ObjIE.navigate "http://www.yahoo.co.jp/index.html" '表示終了まで待つ Do While ObjIE.Busy = True DoEvents Loop ObjIE.Quit End Sub と言うことがわかったのですが 開くのは他の作業をしたときに行うので 「閉じる」だけをvbaで行いたいのですがどうすればいいのかわかりません。 Sub TEST2() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True '見えるようにする ObjIE.Quit End Sub だと また新たなIEが起動してしまい「現在起動しているIEを閉じる」と言うことができません。 アドバイスをお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
質問のコードだと、自分で別のIEを開いて、それを閉じてるだけでは。 今開いているIE(1つとしても)を、プログラムで捉えて、閉じないと質問の主旨では無いでしょう。 だから「今開いているIEを捉える方法(コード)は」と質問の表現を改めて質問しないとダメでしょう。 ObjIE.QuitのObjIEが捉えられれば、ObjIE.Quit で終わり。 あとはObjectの破棄をする。 ーー #1で、既にご回答は出ていますが。 ーーーー WEB上で、ほぼ下記のようなのを見つけて改変。 Sub test02() Set aShell = CreateObject("Shell.Application") Set wcobj = aShell.Windows For Each wobj In wcobj If wobj.FullName Like "*iexplore.exe" = True Then MsgBox wobj.LocationURL If wobj.LocationURL = "http://www.google.co.jp/" Then wobj.Quit End If End If Next End Sub これでGoogle画面だけ閉じた。参考になれば。
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 いくつか方法はありますが、 こんな方法が簡単では? ただ、Vista + IE 7 だと、オプションを変更しないと、うまく行かない可能性があります。 Sub Test1() Dim objShell As Object Dim objWin As Object Set objShell = CreateObject("Shell.Application") For Each objWin In objShell.Windows If TypeName(objWin) = "IWebBrowser2" Then Set objIE = objWin objIE.Quit End If Next End Sub
お礼
できました! ご回答ありがとうございます。
お礼
試してみたらできました!ご回答ありがとうございます。