こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

QNo.4411798

暇なときに回答ください

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

質問のコードだと、自分で別の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

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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

投稿日時 - 2008-10-18 23:25:50

お礼

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

投稿日時 - 2008-10-19 16:18:44