回答編集履歴
1
IEブラウザ待機処理コード追加
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
|
+
```
|