開いているIEを掴む(最新のウィンドウから取得)
Excel VBAマクロでIEを自動操作する際、エラーが出て止まってしまうケースの対応策で、
開いているIEを掴む場合がありますが、最新のウィンドウから取得したい場合があります。
開いているIEを掴む(最新のウィンドウから取得)のサンプルコード
'■InternetExplorerで再度、objIEをSetしなおす。 Sub sample_IE_shell_set_objIE() Dim objIE As InternetExplorer Dim win As Object Dim winshell As Object Set winshell = CreateObject("Shell.Application") '■IEを起動 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True '■指定したURLに飛び、Webサイトの表示を待つ objIE.navigate "https://vba-create.jp/" '■シェルオブジェクトを使用し、IEを再度掴みなおす。(最新のウィンドウから取得していく) Dim i As Long For i = winshell.Windows.Length To 0 Step -1 Set win = winshell.Windows(CInt(i)) If win.Name = "Internet Explorer" Then Set objIE = win Exit For End If Next '■IE読み込み表示待ち Do While objIE.Busy = True DoEvents Loop Do While objIE.readyState <> READYSTATE_COMPLETE DoEvents Loop End Sub
その他
こちらはIEを掴みなおす動きをします。
=現在開いているタブとは別のタブでページを開いた際も、こちらのコードを使用します。
=別のタブをobjIEにSetしなおさないと、現在のタブがobjIEのままになってしまいます。
=IEを掴みなおさないと、正常に動作しません。
=現在開いているタブとは別のタブでページを開いた際も、こちらのコードを使用します。
=別のタブをobjIEにSetしなおさないと、現在のタブがobjIEのままになってしまいます。
=IEを掴みなおさないと、正常に動作しません。
コメント