![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
検索対象のWEBページは複数有り、日々調査するURLの個数とURLは変動するため、
Sheet1のA列にコピーしようと思います。
また、調査する文字列はSheet1 B列に記入しようと思います。
EXCEL2013のVBAで作成する方法をご教示願います。
やりたいイメージは下記となります。
1.○月○日、3つのURLをチェック(調査対象のURLと件数は変動)
A列 B列 C列 D列 E列 F列 G列
1 http://www.yahoo.co.jp/○○○1 URL1 URL2 URL3 URL4 URL5
2 http://www.msn.com/ja-jp/△△△1 会社 5件 3件 6件
3 http://www.goo.ne.jp/□□□1 新聞 3件 7件 4件
4 2015年 10件 14件 9件
5 乗物 0件 2件 0件
6 今後 1件 3件 0件
※B列の実調査件数は、現在約30ですが増える場合はB列に追加していきます
※C列:1のURL件数、D列:2のURL件数、E列:3のURL件数、
F列:4のURL件数、G列:5のURL件数
※今回検索しないURLの列は空白でなく、0件と出力されても大丈夫です
2.○月×日、2つのURLをチェック(調査対象のURLと件数は変動)
A列 B列 C列 D列 E列 F列 G列
1 URL1 URL2 URL3 URL4 URL5
2 http://www.msn.com/ja-jp/△△△2 会社 3件 2件
3 新聞 2件 6件
4 http://www.livedoor.com/●●●2 2015年 8件 9件
5 乗物 1件 0件
6 今後 0件 1件
No.2ベストアンサー
- 回答日時:
再びNo,1の者です。
添付画像のようにA列にURL、B列に検索キーワードが書かれている状態でコードを実行します。
※ A列のURLは[A1]から下方向に書き始めて、いくつでも追加できます。
※ B列の検索語は[B2]から下方向に書き始めて、いくつでも追加できます。
あえてボタンの作り方までは書きませんが、
適当なボタンを作って下記のマクロを実行出来るようにすれば、ご希望の内容になると思います。
=========================================
Sub Macro1()
Dim ie As Object
Dim WebURL As String, kensaku As String, txthtml As String
Dim WordCount As Integer, N As Integer, i As Long, ii As Long
Range("A1").Select
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
WebURL = Cells(i, 1).Value
If WebURL = "" Then Exit Sub
Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate (WebURL)
Do While ie.Busy
Loop
txthtml = ie.Document.body.innerHTML
ie.Quit
Set ie = Nothing
Range("B2").Select
For ii = 2 To Cells(Rows.Count, 2).End(xlUp).Row
kensaku = Cells(ii, 2).Value
If kensaku = "" Then Exit For
WordCount = 0
N = 0
Do
N = InStr(N + 1, txthtml, kensaku)
If (N > 0) Then WordCount = WordCount + 1
Loop While (N > 0)
Cells(ii, 2 + i).Value = WordCount & " 件"
Next ii
Next i
End Sub
=========================================
![「WEBページに調査する文字列が、それぞれ」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/a/955003_558f01f49b826/M.jpg)
何度もご回答ありがとうございます。
ご回答くださいました内容を下記のように変更することで
目的の件数チェックができました。
本当に助かりました、感謝いたします。
大文字・小文字を区別せずに件数カウントする場合もあるため、
区別せずにカウントするやり方を勉強してみます。
1)件数オーバーによるエラー対応
N As Integer → N As Long に変更しました
2)A列には最終行までに空白ある場合あるため、
If WebURL = "" Then Exit Sub をコメントにしました
3)オブジェクトエラー対応
Loop の次行に On Error Resume Next を追加しました
※WEB頁から直接件数チェックするやり方が分からず、週末まで自分なりに
以下の論理で一通りの流れを構築していました。
ただ、②の箇所で20万文字以上のコピーがあり、
全て取得できずに悩んでいました。。。
①WEB検索した頁をテキスト出力
②テキスト出力をEXCELにコピー
③件数チェック
No.1
- 回答日時:
1つのサイトを検索する例です。
これを応用して自動化出来ると思いますよ。ただし、HTMLソースを取得して該当文字列を検索するので、プルダウンの選択項目や説明文なども全て数えてしまいます。Webページを表示した状態で数えるのとはちょっと違うのでもう一工夫必要かもしれません。
Sub Macro1()
Dim ie As Object, txthtml As String, Weburl As String
Dim Count As Integer, N As Integer
Dim Target, Target2
Set ie = CreateObject("InternetExplorer.Application")
Target = Application.InputBox(prompt:="WebページのURLを入力", Title:="URL入力", Type:=2)
If (Target = False) Or (Target = "") Then Exit Sub
ie.Visible = True
ie.Navigate (Target)
Do While ie.Busy
Loop
txthtml = ie.Document.body.innerHTML
ie.Quit
Set ie = Nothing
Target2 = Application.InputBox(prompt:="検索したい文字列を入力", Title:="文字列検索", Type:=2)
If (Target2 = False) Or (Target2 = "") Then Exit Sub
Count = 0
N = 0
Do
N = InStr(N + 1, txthtml, Target2)
If (N > 0) Then
Count = Count + 1
End If
Loop While (N > 0)
If (Count = 0) Then
MsgBox "文字列「" & Target2 & "」は、見つかりませんでした。"
Else
MsgBox "文字列「" & Target2 & "」は、" & Count & "個見つかりました。"
End If
End Sub
早速のご回答ありがとうございます。
プルダウンの選択項目や説明文なども全て件数にカウントで大丈夫です。
質問の内容や「やりたいイメージ」を上手く表現できていなく大変恐縮です。
A列に入力したURL(平均4~5個)に該当するB列の文字列(現在、約30で今後、増える要素有)を日々チェックしております。
メッセージボックスへURL・調査する文字列を入力することなく、
ボタン1つの操作で件数結果をEXCELのC列・D列・E列・F列・G列に一括出力したいのですが、方法は分からず質問した次第です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- Excel(エクセル) Excel ハイパーリンク設定について 教えてください 例なんですが、 VBAにてファイル1の列Gに 2 2022/11/04 17:52
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Visual Basic(VBA) vbaで条件付き書式を設定したときの適用範囲について 1 2023/07/17 23:14
- Visual Basic(VBA) 複数条件でのカウント 3 2022/04/20 23:06
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
エクセルで最初のスペースまで...
-
PowerPointで表の1つの列だけ...
-
エクセル 文字数 多い順 並...
-
2つのエクセルのデータを同じよ...
-
エクセルの表から正の数、負の...
-
VBAで文字列を数値に変換したい
-
エクセル 同じ値を探して隣の...
-
エクセルで文字が混じった数字...
-
Excelで半角の文字を含むセルを...
-
Excel、市から登録している住所...
-
「B列が日曜の場合」C列に/...
-
オートフィルターをかけ、#N/A...
-
Excelの行、列の左方向シフト、...
-
エクセルの表示画面(シート)...
-
【VBA】特定列に文字が入ってい...
-
EXCELで 一桁の数値を二桁に
-
VBAでセル入力の数式に変数を用...
-
エクセルの項目軸を左寄せにしたい
-
エクセル(勝手に太字になる)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
エクセルで最初のスペースまで...
-
エクセルVBA、別ブックへ転記す...
-
エクセル 文字数 多い順 並...
-
エクセル(勝手に太字になる)
-
VBAで文字列を数値に変換したい
-
エクセルで文字が混じった数字...
-
エクセルの表から正の数、負の...
-
「B列が日曜の場合」C列に/...
-
Excelで半角の文字を含むセルを...
-
エクセルの並び変えで、空白セ...
-
Excel、市から登録している住所...
-
エクセル 同じ値を探して隣の...
-
EXCELで 一桁の数値を二桁に
-
エクセル初心者です 関数の入れ...
-
A列がない・・・A列が非表示に...
-
オートフィルターをかけ、#N/A...
-
エクセルで、列の空欄に隣の列...
おすすめ情報
早速のご回答ありがとうございます。
プルダウンの選択項目や説明文なども全て件数にカウントで大丈夫です。
質問の内容や「やりたいイメージ」を上手く表現できていなく大変恐縮です。
A列に入力したURL(平均4~5個)に該当するB列の文字列(現在、約30で今後、増える要素有)を日々チェックしております。
メッセージボックスへURL・調査する文字列を入力することなく、
ボタン1つの操作で件数結果をEXCELのC列・D列・E列・F列・G列に一括出力したいのですが、方法は分からず質問した次第です。