• ベストアンサー

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を閉じる」と言うことができません。 アドバイスをお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.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画面だけ閉じた。参考になれば。

noname#150498
質問者

お礼

試してみたらできました!ご回答ありがとうございます。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 いくつか方法はありますが、 こんな方法が簡単では? ただ、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

noname#150498
質問者

お礼

できました! ご回答ありがとうございます。

関連するQ&A