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を閉じる」と言うことができません。
アドバイスをお願い致します。
投稿日時 - 2008-10-18 22:55:56
質問のコードだと、自分で別の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画面だけ閉じた。参考になれば。
投稿日時 - 2008-10-19 09:28:01
試してみたらできました!ご回答ありがとうございます。
投稿日時 - 2008-10-19 16:18:58
このQ&Aは役に立ちましたか?
1人が「このQ&Aが役に立った」と投票しています
回答(2)
こんばんは。
いくつか方法はありますが、
こんな方法が簡単では?
ただ、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
投稿日時 - 2008-10-18 23:25:50
できました!
ご回答ありがとうございます。
投稿日時 - 2008-10-19 16:18:44