www.youtube.com
http://www.youtube.com/watch?v=T0WjAw-809Q
下記の質問メッセージを受け取りました。
>起動しているIEの中で、ある特定、
>例えば Yahooのアドレス(http://www.yahoo.co.jp/)が有る場合
>そのIEを強制的に閉じる方法
>をVBAで書く場合どうすればよいですか?
前に作った、
3/27 起動しているIEを全て閉じたい。
http://ken3-info.blog.ocn.ne.jp/objie/2009/03/327_ie_5a92.html
の
Sub ccc() 'ここで、.Quitで終わらせる。 Dim objShell As Object Dim objIE As Object Dim n As Integer Set objShell = CreateObject("Shell.Application") '後ろから消してく。 For n = objShell.Windows.Count To 1 Step -1 'MAXから-1ひいてく感じ Set objIE = objShell.Windows(n - 1) 'n番目のウインドウを代入 MsgBox "確認" & objIE objIE.Quit Next Set objShell = Nothing End Sub
↑を改造して、下記のような感じ↓でなんとか完成?しました・・・
Sub ddd() '指定したURLを.Quitで終わらせる。 Dim objShell As Object Dim objIE As Object Dim n As Integer 'これで、エクスプローラーのウインドウを取得する Set objShell = CreateObject("Shell.Application") '後ろから消してく。.Windowsでエクスプローラーとインターネットエクスプローラーにさわれる For n = objShell.Windows.Count To 1 Step -1 'MAXから-1ひいてく感じ Set objIE = objShell.Windows(n - 1) 'n番目のウインドウを代入 '.FullNameで普通のファイルエクスプローラーとIE(インターネットエクスプローラー)を区別する If Right(UCase(objIE.FullName), 12) = "IEXPLORE.EXE" Then Debug.Print objIE.document.URL If objIE.document.URL = "http://www.yahoo.co.jp/" Then '次に.URLでURLのチェック objIE.Quit '.QUITで該当URLを閉じる End If End If Next Set objShell = Nothing End Sub
ポイントは、
.document.URLでURLが取得可能なので、普通に
If objIE.document.URL = "http://www.yahoo.co.jp/" Then 'で比べて、
objIE.Quit で閉じました。
で、問題があって、普通のd:\などのフォルダーを開いていると、
.documentが無いので、objIE.document.URLでエラーが発生します。
そのエラーを回避したいので、(※回避しないで、エラーを無視して進むなんて手もありますが、今回は、事前にIEと普通のエクスプローラ、フォルダー開きをチェックしました)
.FullNameで起動した.exeを調べてみます。
If Right(UCase(objIE.FullName), 12) = "IEXPLORE.EXE"
で判断させて、IEか普通のフォルダーを見ているのか判断してみました。
まぁ、実際に動かしてみて、試行錯誤して見てください。。。