dポイントプレゼントキャンペーン実施中!

検索対象の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件

質問者からの補足コメント

  • 早速のご回答ありがとうございます。
    プルダウンの選択項目や説明文なども全て件数にカウントで大丈夫です。

    質問の内容や「やりたいイメージ」を上手く表現できていなく大変恐縮です。

    A列に入力したURL(平均4~5個)に該当するB列の文字列(現在、約30で今後、増える要素有)を日々チェックしております。
    メッセージボックスへURL・調査する文字列を入力することなく、
    ボタン1つの操作で件数結果をEXCELのC列・D列・E列・F列・G列に一括出力したいのですが、方法は分からず質問した次第です。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/06/25 09:24

A 回答 (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
    • good
    • 0
この回答へのお礼

何度もご回答ありがとうございます。

ご回答くださいました内容を下記のように変更することで
目的の件数チェックができました。
本当に助かりました、感謝いたします。

大文字・小文字を区別せずに件数カウントする場合もあるため、
区別せずにカウントするやり方を勉強してみます。

1)件数オーバーによるエラー対応
  N As Integer → N As Long に変更しました
2)A列には最終行までに空白ある場合あるため、
  If WebURL = "" Then Exit Sub をコメントにしました
3)オブジェクトエラー対応
  Loop の次行に On Error Resume Next を追加しました

※WEB頁から直接件数チェックするやり方が分からず、週末まで自分なりに
 以下の論理で一通りの流れを構築していました。
 ただ、②の箇所で20万文字以上のコピーがあり、
 全て取得できずに悩んでいました。。。
 ①WEB検索した頁をテキスト出力
 ②テキスト出力をEXCELにコピー
 ③件数チェック

お礼日時:2015/06/29 14:40

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
この回答への補足あり
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
プルダウンの選択項目や説明文なども全て件数にカウントで大丈夫です。

質問の内容や「やりたいイメージ」を上手く表現できていなく大変恐縮です。

A列に入力したURL(平均4~5個)に該当するB列の文字列(現在、約30で今後、増える要素有)を日々チェックしております。
メッセージボックスへURL・調査する文字列を入力することなく、
ボタン1つの操作で件数結果をEXCELのC列・D列・E列・F列・G列に一括出力したいのですが、方法は分からず質問した次第です。

お礼日時:2015/06/25 17:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!