質問編集履歴

5

文法の修正

2019/10/03 14:23

投稿

wing283
wing283

スコア122

test CHANGED
File without changes
test CHANGED
@@ -28,6 +28,8 @@
28
28
 
29
29
  ```ここに言語を入力
30
30
 
31
+
32
+
31
33
  '変数を必ず定義すると宣言
32
34
 
33
35
  Option Explicit
@@ -64,13 +66,49 @@
64
66
 
65
67
  'Internet Exploreを立ち上げる
66
68
 
67
- Dim objIE As Object 'IEオブジェクト参照用
68
-
69
69
  Set objIE = CreateObject("InternetExplorer.Application")
70
70
 
71
71
  objIE.Visible = True
72
72
 
73
+
74
+
75
+ 'URLを指定する
76
+
73
- objIE.Navigate "http://hogeho.ge/login.php"
77
+ objIE.Navigate2 "http://hogeho.ge/login.php"
78
+
79
+
80
+
81
+ Do While objIE.Busy = True Or objIE.readyState <> 4
82
+
83
+ DoEvents
84
+
85
+ Loop
86
+
87
+
88
+
89
+ Dim htmlDoc As HTMLDocument
90
+
91
+ Set htmlDoc = objIE.Document
92
+
93
+
94
+
95
+ With htmlDoc
96
+
97
+ .getElementById("login").Value = "XXXXXXXXX" 'ユーザー名を指定
98
+
99
+ .getElementById("pass").Value = "AAAAAAAAAA" 'パスワードを指定
100
+
101
+ .getElementById("submit").Click
102
+
103
+ End With
104
+
105
+
106
+
107
+
108
+
109
+ Set ieDoc = objIE.Document 'ログイン後のページのHTMLを読み込む
110
+
111
+
74
112
 
75
113
 
76
114
 
@@ -84,68 +122,64 @@
84
122
 
85
123
 
86
124
 
87
-
88
-
89
- Dim htmlDoc As HTMLDocument
90
-
91
- Set htmlDoc = objIE.Document
125
+ Set ieDoc = objIE.Document
92
-
93
-
94
-
95
- With htmlDoc
126
+
96
-
97
- .getElementById("login").Value = "XXXXXXXXXX" 'ユーザー名を指定
127
+
98
-
99
- .getElementById("pass").Value = "AAAAAAAAAA" 'パスワードを指定
128
+
100
-
101
- .getElementById("submit").Click
102
-
103
- End With
104
-
105
-
106
-
107
- Do While objIE.Busy = True Or objIE.readyState <> 4
108
-
109
- DoEvents
110
-
111
- Loop
112
-
113
-
114
-
115
- Set ieDoc = objIE.Document 'ログイン後のページのHTMLを読み込む
116
-
117
-
118
-
119
-
120
-
121
- For Each obj In ieDoc.getElementsByTagName("table") 'tableタグを一つずつを変数objにセット
122
-
123
- For Each obj2 In obj.getElementsByTagName("tr") 'trタグ一つずつを変数objにセット
129
+ For Each obj In objIE.Document.all '表示されているサイトの全タグ一つずつを変数objにセット
130
+
124
-
131
+ '各アンカータグ単位に以下の処理を実施
132
+
133
+ Select Case obj.tagName 'タグ名により処理を分岐
134
+
135
+ Case "TR", "TD", "TH" 'TR,TD,THタグの場合、以下の処理を実施
136
+
137
+
138
+
139
+ If obj.offsetParent.className = "boardFin yjSt marB6" Then '親タグのCLASS名が「boardFin yjSt marB6」の場合
140
+
141
+
142
+
143
+ Select Case obj.tagName 'タグ名により処理を分岐
144
+
145
+ Case "TR" 'TRタグの場合
146
+
125
- j = j + 1 '行カウンターを1アップ
147
+ j = j + 1 '行カウンターを1アップ
126
-
127
- i = 0
148
+
128
-
129
- For Each obj3 In obj2.getElementsByTagName("td")
149
+ i = 0 '列カウンターをクリアー
150
+
130
-
151
+ Case "TD", "TH" 'TD,THタグの場合、以下を処理
152
+
131
- i = i + 1
153
+ i = i + 1 '列カウンターを1アップ
132
-
154
+
155
+
156
+
133
- Worksheets("Sheet2").Cells(j, i).Value = obj3.innerText 'タグのテキスト内容をセルにセット
157
+ Worksheets("Sheet1").Cells(j, i).Value = obj.innerText 'タグのテキスト内容をセルにセット
134
-
135
-
136
-
158
+
159
+
160
+
137
- Next
161
+ End Select
162
+
163
+
164
+
138
-
165
+ End If
166
+
167
+
168
+
139
- Next
169
+ End Select
170
+
171
+
140
172
 
141
173
  Next
142
174
 
143
-
175
+
144
176
 
145
177
  End Sub
146
178
 
147
179
 
148
180
 
181
+
182
+
149
183
  ```
150
184
 
151
185
 
@@ -156,6 +190,10 @@
156
190
 
157
191
 
158
192
 
193
+ 2019/10/3/23:20 th取得のため 修正いたしました。
194
+
195
+
196
+
159
197
  2019/10/3/21:15 修正いたしました。
160
198
 
161
199
  現在の状況:ステップ インでは取得したい値が取得てきております。

4

文法の修正

2019/10/03 14:23

投稿

wing283
wing283

スコア122

test CHANGED
File without changes
test CHANGED
@@ -25,6 +25,8 @@
25
25
  ### 該当のソースコード
26
26
 
27
27
 
28
+
29
+ ```ここに言語を入力
28
30
 
29
31
  '変数を必ず定義すると宣言
30
32
 
@@ -90,13 +92,15 @@
90
92
 
91
93
 
92
94
 
93
- htmlDoc.getElementById("login").Value = "XXXXXXXXXX" 'ユーザー名を指定
95
+ With htmlDoc
94
96
 
95
- htmlDoc.getElementById("pass").Value = "AAAAAAAAAA" 'パスワを指定
97
+ .getElementById("login").Value = "XXXXXXXXXX" 'ザー名を指定
96
98
 
97
- htmlDoc.getElementById("submit").Click
99
+ .getElementById("pass").Value = "AAAAAAAAAA" 'パスワードを指定
98
100
 
99
-
101
+ .getElementById("submit").Click
102
+
103
+ End With
100
104
 
101
105
 
102
106
 
@@ -142,6 +146,8 @@
142
146
 
143
147
 
144
148
 
149
+ ```
150
+
145
151
 
146
152
 
147
153
 

3

補足の追記

2019/10/03 12:23

投稿

wing283
wing283

スコア122

test CHANGED
File without changes
test CHANGED
@@ -150,4 +150,10 @@
150
150
 
151
151
 
152
152
 
153
+ 2019/10/3/21:15 修正いたしました。
154
+
155
+ 現在の状況:ステップ インでは取得したい値が取得てきております。
156
+
157
+
158
+
153
159
  当方Excel2013を使用しています。

2

文法の修正

2019/10/03 12:20

投稿

wing283
wing283

スコア122

test CHANGED
File without changes
test CHANGED
@@ -62,15 +62,13 @@
62
62
 
63
63
  'Internet Exploreを立ち上げる
64
64
 
65
+ Dim objIE As Object 'IEオブジェクト参照用
66
+
65
67
  Set objIE = CreateObject("InternetExplorer.Application")
66
68
 
67
69
  objIE.Visible = True
68
70
 
69
-
70
-
71
- 'URLを指定する
72
-
73
- objIE.Navigate2 "http://hogeho.ge/login.php"
71
+ objIE.Navigate "http://hogeho.ge/login.php"
74
72
 
75
73
 
76
74
 
@@ -82,65 +80,53 @@
82
80
 
83
81
  Wend
84
82
 
83
+
85
84
 
86
-
87
- Set ieDoc = objIE.document
85
+
88
86
 
89
87
  Dim htmlDoc As HTMLDocument
90
88
 
91
- Set htmlDoc = objIE.document
89
+ Set htmlDoc = objIE.Document
90
+
91
+
92
+
93
+ htmlDoc.getElementById("login").Value = "XXXXXXXXXX" 'ユーザー名を指定
94
+
95
+ htmlDoc.getElementById("pass").Value = "AAAAAAAAAA" 'パスワードを指定
96
+
97
+ htmlDoc.getElementById("submit").Click
98
+
99
+
100
+
101
+
102
+
103
+ Do While objIE.Busy = True Or objIE.readyState <> 4
104
+
105
+ DoEvents
106
+
107
+ Loop
108
+
109
+
110
+
111
+ Set ieDoc = objIE.Document 'ログイン後のページのHTMLを読み込む
112
+
113
+
92
114
 
93
115
 
94
116
 
95
- htmlDoc.getElementById("user_login").Value = "XXXXXXXXXX" 'ユーザー名指定
117
+ For Each obj In ieDoc.getElementsByTagName("table") 'tableタグ一つずつを変数objにセット
96
118
 
97
- htmlDoc.getElementById("user_pass").Value = "AAAAAAAAAA" 'パスワード指定
119
+ For Each obj2 In obj.getElementsByTagName("tr") 'trタグ一つずつを変数objにセット
98
120
 
99
- htmlDoc.getElementById("wp-submit").Click
100
-
101
-
102
-
103
- Set htmlDoc = Nothing 'ログインページのHTMLをいったん破棄
104
-
105
-
106
-
107
- Call WaitIE(objIE) '画面遷移の待機
108
-
109
-
110
-
111
- 'ログイン後のページのHTMLを読み込む
112
-
113
- Set htmlDoc = objIE.document
114
-
115
-
116
-
117
- 'tableタグを一つずつを変数objにセット
118
-
119
- For Each obj In ieDoc.getElementsByTagName("table")
120
-
121
-
122
-
123
- 'trタグを一つずつを変数objにセット
124
-
125
- For Each obj2 In obj.getElementsByTagName("tr")
126
-
127
-
128
-
129
- '行カウンターを1アップ
121
+ j = j + 1 '行カウンターを1アップ
130
-
131
- j = j + 1
132
122
 
133
123
  i = 0
134
124
 
135
125
  For Each obj3 In obj2.getElementsByTagName("td")
136
126
 
137
-
138
-
139
127
  i = i + 1
140
128
 
141
- 'タグのテキスト内容をセルにセット
142
-
143
- Worksheets("Sheet1").Cells(j, i).Value = obj3.innerText
129
+ Worksheets("Sheet2").Cells(j, i).Value = obj3.innerText 'タグのテキスト内容をセルにセット
144
130
 
145
131
 
146
132
 
@@ -150,21 +136,11 @@
150
136
 
151
137
  Next
152
138
 
153
-
154
-
155
-
139
+
156
140
 
157
141
  End Sub
158
142
 
159
- Function WaitIE(ByRef objIE As Object)
160
143
 
161
- Do While objIE.Busy = True Or objIE.readyState <> 4
162
-
163
- DoEvents
164
-
165
- Loop
166
-
167
- End Function
168
144
 
169
145
 
170
146
 

1

文法の修正

2019/10/03 12:13

投稿

wing283
wing283

スコア122

test CHANGED
@@ -1 +1 @@
1
- ExcelVBAを使って管理画面ログイン後Tableをシートに出力
1
+ ExcelVBAを使って管理画面ログイン後Tableをシートに出力したい
test CHANGED
File without changes