開いている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を掴みなおさないと、正常に動作しません。



コメント