| 
    
     |  | あつし さん、こんにちわ。 
 >やはり複数のIEが開いていると3〜4回 For で回った後、まだ開いているIEがあっても For から抜けてしまいました。
 全部チェックすることはできてもQuitは2〜4で中断するようですね。
 
 配列に取得して、後ろから閉じます。
 
 Option Explicit
 Sub TEST()
 'オブジェクトを格納する変数
 Dim obj1 As Object, obj2 As Object, NN As Long, II As Long, ChkUrl As String
 'サンプル:質問箱のトップページ
 ChkUrl = "htt" & "p://www.vbalab.net/"
 '
 Set obj1 = CreateObject("Shell.Application")
 'ウインドウの数
 NN = obj1.Windows.Count
 If NN > 0 Then
 'ウインドウオブジェクトと判定結果を取得しておくための配列
 ReDim flg(NN) As Boolean
 ReDim w1(NN) As Object
 II = 0
 For Each obj2 In obj1.Windows
 II = II + 1
 flg(II) = TypeName(obj2.document) = "HTMLDocument"
 If flg(II) = True Then
 'アドレスが一致したら閉じない
 flg(II) = Not (obj2.document.URL = ChkUrl)
 End If
 Set w1(II) = obj2
 Next
 '閉じるときは念のために逆回し
 For II = NN To 1 Step -1
 If flg(II) = True Then w1(II).Quit
 Next
 Erase w1, flg
 End If
 '終了
 Set obj1 = Nothing
 End Sub
 
 こんな感じです。
 アドレスを分けてるのは禁止語句で投稿できないからなので、実際はつなげて書いてただいて結構です。
 
 |  |