回答編集履歴

12

追記

2019/03/22 16:47

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -22,7 +22,13 @@
22
22
 
23
23
  また、参照設定(事前バインディング)をしたので、IEのインスタンスの生成は、CreateObjectではなく、Newに変えました。
24
24
 
25
- (参照設定して、CreateObjectしてしまうと2重になってしまうかもしれないので)
25
+ (参照設定して、CreateObjectしてしまうと2重になってしまうかもしれないので。また、インテリセンスが使いたかったので。
26
+
27
+
28
+
29
+ もちろん、参照設定しないなら、Newではなく、CreateObject に戻してください。
30
+
31
+ 「Microsoft HTML Object Library」がらみのものについても、CreateObject のようなことが必要だと思います。
26
32
 
27
33
 
28
34
 

11

ミス修正

2019/03/22 16:46

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -78,7 +78,7 @@
78
78
 
79
79
  'HTMLソースの中の、「<A>タグの部分」を総ざらいします。
80
80
 
81
- For Each anc_anchor01 In ie.Document.getElementsByTagName("A")
81
+ For Each anc_anchor01 In hd_htdoc.getElementsByTagName("A")
82
82
 
83
83
 
84
84
 
@@ -90,7 +90,11 @@
90
90
 
91
91
  '以下の処理。
92
92
 
93
+
94
+
93
-
95
+ 'ヒットした各Webページの部分の、
96
+
97
+ 'タイトルやらURLやタグやら全部を変数に代入
94
98
 
95
99
  s_HTML = anc_anchor01.outerHTML
96
100
 
@@ -98,15 +102,17 @@
98
102
 
99
103
  If 0 < InStr(1, s_HTML, "<h3", vbBinaryCompare) Then
100
104
 
105
+
106
+
101
-
107
+ 'ヒットした各Webページのタイトル部分のみを変数に代入
102
108
 
103
109
  s_txt = anc_anchor01.outerText
104
110
 
105
111
 
106
112
 
107
- 'anc_anchor01.outerText の中に「改行」がいくつか
113
+ 'anc_anchor01.outerText(ヒットしたタイトル) の中に
108
114
 
109
- '含まれてしまっていたので "--" に置換して消す。
115
+ '「改行」がいくつか含まれてしまっていたので "--" に置換して消す。
110
116
 
111
117
  Range("A" & i) = Replace(s_txt, vbCrLf, "--", , , vbBinaryCompare)
112
118
 

10

追記

2019/03/21 15:16

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- 私もよくわかってないのですみませんが、当方でも色々試してみましたら、以降のコードで、一応、検索結果のタイトルとURLが取得できました。
9
+ 私もよくわかってないのですみませんが、当方でも色々試してみましたら、以降のコードで、一応、検索結果のタイトルとURLが取得できました。Excelのアクティブシートに書き出しています。
10
10
 
11
11
 
12
12
 

9

追記

2019/03/21 04:25

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -182,9 +182,9 @@
182
182
 
183
183
  ※追記
184
184
 
185
- 今、この本、ちゃんとさらーっと読み直してみたら、すごくよさそうです。今後ももしIE操作を細かく自動化したかったら、買っておいても損はないかもです。
185
+ 今、この本、ちゃんと最後までさらーっと読み直してみたら、すごくよさそうです。今後ももしIE操作を細かく自動化したかったら、買っておいても損はないかもです。
186
186
 
187
- 著者のサイト?かは不明ですが、以下のサイトもよさげです。本に書いてることよりも詳しい説明も載っていました。
187
+ 著者のサイト?かは不明ですが、以下のサイトもよさげです。本に書いてることよりも詳しい説明も載っていました。(本書にもこのようなことが書かれています。本から入った方がわかりやすいと思います。)
188
188
 
189
189
  https://www.vba-ie.net/sp/element/getelementsbytagname.php
190
190
 

8

追記

2019/03/21 04:23

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -177,3 +177,15 @@
177
177
 
178
178
 
179
179
  IEの操作はそういった本を1冊買っておいた方が早いかもしれません。
180
+
181
+
182
+
183
+ ※追記
184
+
185
+ 今、この本、ちゃんとさらーっと読み直してみたら、すごくよさそうです。今後ももしIE操作を細かく自動化したかったら、買っておいても損はないかもです。
186
+
187
+ 著者のサイト?かは不明ですが、以下のサイトもよさげです。本に書いてることよりも詳しい説明も載っていました。
188
+
189
+ https://www.vba-ie.net/sp/element/getelementsbytagname.php
190
+
191
+ 各Tipsの目次らしきページ→ https://www.vba-ie.net/qanda/qanda.cgi

7

追記

2019/03/21 04:21

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -13,6 +13,8 @@
13
13
  条件分岐の中で、「anc_anchor01.Click」みたいな感じで「Clickメソッド」を使うと、そのページへ飛ぶこともできます。ただ、別のタブに表示する方法がわかりませんでした。
14
14
 
15
15
  「InternetExplorer getelementsbytagname 使い方」みたいな感じでWeb検索したら、もしかしたら、何か出てくるかもしれません。
16
+
17
+ あと、「<h3」という<h3>タグの一部があったら、タイトルを取得しているようにしていますが、これはHTMLソースを見たら、たまたまGoogleがh3を使っていたようなのでそうしました。なのでほかのタグが使われているページでは正常動作しないと思います。つまり、「<h3」だけでなく「<h2」なども分岐に加えたほうがいいかもしれません。(私もHTMLタグは詳しくないのでよくわかっていません!すみません!)
16
18
 
17
19
 
18
20
 

6

追記

2019/03/21 04:07

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -7,6 +7,12 @@
7
7
 
8
8
 
9
9
  私もよくわかってないのですみませんが、当方でも色々試してみましたら、以降のコードで、一応、検索結果のタイトルとURLが取得できました。
10
+
11
+
12
+
13
+ 条件分岐の中で、「anc_anchor01.Click」みたいな感じで「Clickメソッド」を使うと、そのページへ飛ぶこともできます。ただ、別のタブに表示する方法がわかりませんでした。
14
+
15
+ 「InternetExplorer getelementsbytagname 使い方」みたいな感じでWeb検索したら、もしかしたら、何か出てくるかもしれません。
10
16
 
11
17
 
12
18
 

5

追記

2019/03/21 03:57

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -1,6 +1,8 @@
1
1
  回答ではなくてヒント?ですみません。
2
2
 
3
3
  また、「上位10件」ではなく、「検索結果の最初のページにヒットしたものだけ」の処理です。
4
+
5
+ 「動画」とか「画像」みたいなのが一番上に表示されてしまっている場合はその部分は無視しています。
4
6
 
5
7
 
6
8
 

4

追記

2019/03/21 03:45

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -94,6 +94,10 @@
94
94
 
95
95
 
96
96
 
97
+ 'anc_anchor01.outerText の中に「改行」がいくつか
98
+
99
+ '含まれてしまっていたので "--" に置換して消す。
100
+
97
101
  Range("A" & i) = Replace(s_txt, vbCrLf, "--", , , vbBinaryCompare)
98
102
 
99
103
  Range("B" & i) = anc_anchor01.href

3

ミス修正

2019/03/21 03:42

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -66,7 +66,7 @@
66
66
 
67
67
 
68
68
 
69
- HTMLソースの中、「<A>タグの部分を総ざらいします。
69
+ 'HTMLソースの中、「<A>タグの部分を総ざらいします。
70
70
 
71
71
  For Each anc_anchor01 In ie.Document.getElementsByTagName("A")
72
72
 

2

追記

2019/03/21 03:40

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -66,17 +66,19 @@
66
66
 
67
67
 
68
68
 
69
+ ’HTMLソースの中で、「<A>タグの部分を総ざらいします。
70
+
69
71
  For Each anc_anchor01 In ie.Document.getElementsByTagName("A")
70
72
 
71
73
 
72
74
 
73
75
  '「anc_anchor01.outerHTML」の中に、
74
76
 
75
- '「<h3」というタグの一部があったら
77
+ '「<h3」という<h3>タグの一部があったら
76
78
 
77
- '検索結果の中のタイトルを取得できる
79
+ '検索結果の中のタイトルを取得できるっぽいので
78
80
 
79
- 'ようなので以下の処理。
81
+ '以下の処理。
80
82
 
81
83
 
82
84
 

1

追記

2019/03/21 03:39

投稿

komugi3333
komugi3333

スコア94

test CHANGED
@@ -1,4 +1,6 @@
1
1
  回答ではなくてヒント?ですみません。
2
+
3
+ また、「上位10件」ではなく、「検索結果の最初のページにヒットしたものだけ」の処理です。
2
4
 
3
5
 
4
6