ソースは http://ken3-info.blog.ocn.ne.jp/objie/2009/03/327_ie_5a92.html を見てください。
起動しているIEを全て閉じたいと質問があったので、少し探ってみました。 '後ろから消してく。 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
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
ken3video 2 years ago
※ループ中にobjShell.Windowsの内容が変化してしまうので、
For Each objWindow In objShell.Windows で 順番に取得できないみたいです。
なので、後ろからまわしてみる。そんな処理に変更してみました。
ken3video 2 years ago
Sub bbb() 'ここで、.Quitで終わらせる。 Dim objShell As Object Dim objWindow As Object Dim objIE As Object Set objShell = CreateObject("Shell.Application") For Each objWindow In objShell.Windows Debug.Print objShell.Windows.Count Set objIE = objWindow MsgBox "確認" & objIE & objShell.Windows.Count objIE.Quit Next Set objShell = Nothing
End Sub
ken3video 2 years ago