いつも使っている、
Set objIE = WScript.CreateObject("InternetExplorer.Application") 'オブジェクトを作成します。
に1つ識別子を追加します。
Set objIE = WScript.CreateObject("InternetExplorer.Application", "IE_") 'オブジェクトを作成します。
↑IE_とオブジェクト作成時に 2番目のパラメータとして任意の名前を追加します。
※IE_だと、味気ないけど。
あとは、IE_XXXXXX と イベントを記載すると実行されます。
Set objIE = WScript.CreateObject("InternetExplorer.Application", "IE2_")
と IE2_で作成したら、
Sub IE2_OnQuit() '閉じられた時 msgbox "2番目が終了しました" WScript.Quit End Sub Sub IE2_BeforeNavigate2(ByVal pDisp, URL , Flags , TargetFrameName , PostData , Headers , Cancel) msgbox "2個目のIEでこれから開くURLは " & URL End Sub
↑みたいにして、使用することができます。(できました。)
テストプログラム
test.vbs など、.vbsに下記ソースを保存してテストしてみてください。
Dim objIE '変数を定義します。 Set objIE = WScript.CreateObject("InternetExplorer.Application", "IE9_") 'オブジェクトを作成します 。 objIE.Visible = True '可視、Trueで見えるようにします。 '処理したいページを表示します。 objIE.Navigate "http://www.ocn.ne.jp/" Dim objIE2 '変数を定義します。 Set objIE2 = WScript.CreateObject("InternetExplorer.Application", "IE2_") 'オブジェクトを作成します 。 objIE2.Visible = True '可視、Trueで見えるようにします。 '処理したいページを表示します。 objIE2.Navigate "http://www.yahoo.co.jp/" 'テストで1分、ループする。 time60 = dateadd("s", 60, now()) '60秒後 While Now() < time60 'ループで空回り、テスト WScript.Sleep 100 '0.1秒待つ 1000で1秒 Wend 'IEを閉じる objIE.Quit objIE2.Quit Sub IE9_DocumentComplete(ByVal pDisp, URL) msgbox URL & " 完了" End Sub Sub IE9_BeforeNavigate2(ByVal pDisp, URL , Flags , TargetFrameName , PostData , Headers , Cancel) msgbox "これから開くURLは " & URL End Sub Sub IE9_OnQuit() '閉じられた時 msgbox "終了しました" WScript.Quit End Sub Sub IE2_OnQuit() '閉じられた時 msgbox "2番目が終了しました" WScript.Quit End Sub Sub IE2_BeforeNavigate2(ByVal pDisp, URL , Flags , TargetFrameName , PostData , Headers , Cancel) msgbox "2個目のIEでこれから開くURLは " & URL End Sub Sub IE2_NewWindow2(ppDisp , Cancel ) msgbox "IE2 で 新しいウインドウを開くタイミング" End Sub
解説動画
いつもの、試行錯誤の解説動画は http://www.youtube.com/watch?v=6PRN7EQHHm8 を見てください。
www.youtube.com
↑段取り悪く、ハマってます。