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

質問編集履歴

2

エラーが回避できたが、いぜんとしてクリックはできないため

2021/05/18 14:02

投稿

abcdefg12345
abcdefg12345

スコア1

title CHANGED
File without changes
body CHANGED
@@ -40,7 +40,7 @@
40
40
  Loop
41
41
 
42
42
 
43
- '始(submit)をクリック
43
+ '始(submit)をクリック
44
44
  For Each objTag In objIE.document.getElementsByClassName("btn btn-big btn-primary")
45
45
 
46
46
  If InStr(objTag.outerHTML, "開始") > 0 Then
@@ -91,7 +91,7 @@
91
91
 
92
92
 
93
93
  以下の、質問のエラーは回避できたので、上記に
94
- 新しい問題を記載します。
94
+ 新しい問題を記載します。以下は読み飛ばしてください。
95
95
 
96
96
 
97
97
 

1

エラーが回避できたが、いぜんとしてクリックはできないため

2021/05/18 14:02

投稿

abcdefg12345
abcdefg12345

スコア1

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,100 @@
2
2
  VBAでIE上のHPのボタンがクリックできない
3
3
 
4
4
 
5
+ 問題
6
+ エラーは出ないが、クリックもできていない
7
+
8
+ Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
9
+
10
+ Sub MySub()
11
+
12
+ Dim objIE As InternetExplorer
13
+ Dim objTag As Object
14
+
15
+ Dim win As Object
16
+ Dim winshell As Object
17
+ Set winshell = CreateObject("Shell.Application")
18
+
19
+ 'IE(InternetExplorer)のオブジェクトを作成する
20
+ Set objIE = CreateObject("InternetExplorer.Application")
21
+
22
+ objIE.Visible = True
23
+ objIE.navigate "https://SSSSSSSSSSSSSSSSSSSSSSSS" '管理画面ページのURLを指定
24
+
25
+
26
+ '■シェルオブジェクトを使用し、IEを再度掴みなおす。
27
+ For Each win In winshell.Windows
28
+ If win.Name = "Internet Explorer" Then
29
+ Set objIE = win
30
+ Exit For
31
+ End If
32
+ Next
33
+
34
+ '■IE読み込み表示待ち
35
+ Do While objIE.Busy = True
36
+ DoEvents
37
+ Loop
38
+ Do While objIE.readyState <> READYSTATE_COMPLETE
39
+ DoEvents
40
+ Loop
41
+
42
+
43
+ '始業(submit)をクリック
44
+ For Each objTag In objIE.document.getElementsByClassName("btn btn-big btn-primary")
45
+
46
+ If InStr(objTag.outerHTML, "開始") > 0 Then
47
+
48
+ '送信ボタンクリック
49
+ objTag.Click
50
+
51
+ 'IEが完全表示されるまで待機
52
+ Call ieCheck(objIE)
53
+
54
+ 'ループ脱出
55
+ Exit For
56
+
57
+ End If
58
+ Next
59
+
60
+ End Sub
61
+
62
+ Sub ieCheck(objIE As InternetExplorer)
63
+
64
+ Dim timeOut As Date
65
+
66
+ timeOut = Now + TimeSerial(0, 0, 20)
67
+
68
+ Do While objIE.Busy = True Or objIE.readyState <> 4
69
+ DoEvents
70
+ Sleep 1
71
+ If Now > timeOut Then
72
+ objIE.Refresh
73
+ timeOut = Now + TimeSerial(0, 0, 20)
74
+ End If
75
+ Loop
76
+
77
+ timeOut = Now + TimeSerial(0, 0, 20)
78
+
79
+ Do While objIE.document.readyState <> "complete"
80
+ DoEvents
81
+ Sleep 1
82
+ If Now > timeOut Then
83
+ objIE.Refresh
84
+ timeOut = Now + TimeSerial(0, 0, 20)
85
+ End If
86
+ Loop
87
+
88
+ End Sub
89
+
90
+
91
+
92
+
93
+ 以下の、質問のエラーは回避できたので、上記に
94
+ 新しい問題を記載します。
95
+
96
+
97
+
98
+
5
99
  ### 該当のソースコード
6
100
 
7
101
  ```ここに言語名を入力