VBA IE操作次が画面に遷移するまで待機
Q&A
解決したいこと
VBAでIE操作をしています。Window(HTML)指定した座標をクリックして次の画面へ遷移します。
画面が反映されたら次の操作を実行したいと思います。
遷移反映されるまで次の操作を待機させるにはどうすればいいですか。
該当するソースコード インテンドめちゃくちゃですみません
Declare Function SetCursorPos Lib "USER32" (ByVal x As Long, ByVal y As Long) As Long
Declare Sub mouse_event Lib "USER32" ( _
ByVal dwFlags As Long, _
Optional ByVal dx As Long = 0, _
Optional ByVal dy As Long = 0, _
Optional ByVal dwDate As Long = 0, _
Optional ByVal dwExtraInfo As Long = 0)
Sub Web()
'ブラウザのオープン
Dim objIE As InternetExplorer
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True 'IEを見えなくする
'IEでwebページを開く
objIE.navigate "https://******************"
'
Call IEWait(objIE) '自作関数: IE待機用
While objIE.ReadyState <> 4 Or objIE.Busy = True
DoEvents
Wend
Dim AccountID, CompanyCode As String
AccountID = "********"
CompanyCode = "**********"
PW = "************"
objIE.Document.getElementsByName("ACCOUNTUID_TEMP")(0).Value = AccountID objIE.Document.getElementsByName("COMPANYCODE")(0).Value = CompanyCode
objIE.Document.getElementsByName("PASSWORD")(0).Value = PW
objIE.Document.getElementsByName("SUBMIT")(0).Click
While objIE.ReadyState <> 4 Or objIE.Busy = True
DoEvents
Wend
objIE.FullScreen = True
SendKeys "^(0)"
SetCursorPos 1250, 195 '
mouse_event 2 '左ボタン押下のコード
mouse_event 4 '左ボタン解放のコード
Call WaitFor(1) '自作関数: WaitFor(t):t秒待機
SendKeys "{Enter}"
'ここで次のページが反映するまで待機させたいです
End Sub
'
'IE待機用関数
Sub IEWait(ByRef objIE As Object)
Do While objIE.Busy Or objIE.ReadyState <> 4
DoEvents
Loop
End Sub
'
't[sec]待機させる関数
Sub WaitFor(ByVal second As Integer)
Dim futuretime As Date
futuretime = DateAdd("s", second, Now)
While Now < futuretime
DoEvents
Wend
End Sub
0 likes