teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

IEブラウザ待機処理コード追加

2020/07/24 10:29

投稿

TanakaHiroaki
TanakaHiroaki

スコア1065

answer CHANGED
@@ -1,2 +1,38 @@
1
1
  以下にて、正常動作しますでしょうか。
2
- objie.Document.getElementById("purchaseOrders").Checked = True
2
+ objie.Document.getElementById("purchaseOrders").Checked = True
3
+
4
+ **<追記>**
5
+ もしかすると、ページ遷移が速すぎてオブジェクトを取得できていないのかもしれません。
6
+ 以下のIEブラウザ待機処理を試してみてください。
7
+
8
+ ```VBA
9
+ 'IEブラウザ待機処理
10
+ Private Sub IEwait(ByRef ie As InternetExplorer)
11
+ Dim timeout As Date
12
+ Dim cnt As Integer: cnt = 0
13
+
14
+ timeout = DateAdd("s", 50, Now())
15
+ Do
16
+ 'IE11対策でステータス連続50回一致確認
17
+ If ie.Busy = False And ie.readyState = 4 Then 'READYSTATE_COMPLETE = 4
18
+ DoEvents: DoEvents
19
+ cnt = cnt + 1
20
+ If cnt >= 50 Then
21
+ Exit Do
22
+ End If
23
+ Else
24
+ cnt = 0 'リセット
25
+ End If
26
+ 'タイムアウトチェック
27
+ If timeout < Now() Then Exit Sub
28
+ DoEvents: DoEvents
29
+ Loop
30
+
31
+ timeout = DateAdd("s", 10, Now())
32
+ Do While ie.Document.readyState <> "complete"
33
+ DoEvents: DoEvents
34
+ 'タイムアウトチェック
35
+ If timeout < Now() Then Exit Do
36
+ Loop
37
+ End Sub
38
+ ```