回答編集履歴

1

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

2020/07/24 10:29

投稿

TanakaHiroaki
TanakaHiroaki

スコア1063

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