■方法1:Busyプロパティを監視する
Busyプロパティの値が「True」の間はIEは処理要求を受け付けられない。値が「False」になるのを待ってから処理を行うようにする。
Sub test() Dim ie As Object Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.navigate "https://www.google.com" Do While ie.Busy Debug.Print ie.Busy DoEvents Loop MsgBox ie.document.body.innertext End Sub
■方法2:「ReadyState」プロパティを監視する
0~4までの5段階ステップがあり、最終ステップは4(READYSTATE_COMPLETE)
ループ条件に「ReadyStateプロパティが4より小さい場合」を指定する。
Sub test() Dim ie As Object Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.navigate "https://www.google.com" Do While ie.Busy Or ie.ReadyState < 4 Debug.Print ie.Busy & ":" & ie.ReadyState DoEvents Loop MsgBox ie.document.body.innertext End Sub