• ベストアンサー

ウェブの検索結果を自動的にエクセルファイルに反映する方法

エクセルファイルに電話番号リストが入っています。 この電話番号を1つ1つ手作業で、ヤフー電話帳で検索し、 電話帳に掲載されていれば○、掲載が無ければ×を 入力してています。 この作業を自動的に行う方法はありますか? どんなプログラム、ソフトを用いる方法でもかまいません。 とにかく頭の痛くなる作業から誰か開放してください。

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんにちは。KenKen_SP です。 VBA と HTML に関する知識があれば、技術的にはそれほど難しくはないです。 Excel VBA + InternetExplorer で実現は可能ですね。 Yahoo!電話帳の検索 URL は下記の通りです。 http://phonebook.yahoo.co.jp/bin/search?p=xxx-xxx-xxxx xxx-xxx-xxxx の部分に検索対象となる電話番号を渡すだけです。番号にハイ フンがあってもなくても構いません。 ただし、「掲載あり・なし」の判定ロジックは「不一致キーワード」があるか ないかという極めて単純なものですから、不十分であればコードを修正して下 さい。 サンプルでは A2 セル以下に電話番号があるものとして、最終行までループし、 掲載があれば B 列に○を書き込みます。 Visual Basic Editor を起動し、以下のソースコードを標準モジュールにコ ピー&ペーストして下さい。 '---(標準モジュール)-------------------------------------------------- Option Explicit Private Declare Function timeGetTime Lib "winmm.dll" () As Long Private mIE As Object ' InternetExplorer Private Const READYSTATE_COMPLETE = &H4 Private Const OLECMDID_CLOSE = &H2D Private Const OLECMDEXECOPT_DODEFAULT = &H0 '---------------------------------------------------------------------- ' [検索ベースURL] Private Const QUERY_URL = "http://phonebook.yahoo.co.jp/bin/search?p=" ' [不一致キーワード] Private Const UNMATCH_KEYWORD = "名称との一致:0件" ' [タイムアウト] Private Const TIMEOUT = 15000 ' (単位:ミリ秒)15000ミリ秒 --> 15秒 '---------------------------------------------------------------------- ' ' // ExistPhonenum 使い方サンプルプロシージャ Sub Yahoo電話帳検索()   ' アクティブシートのA2~A列最終行までに記載された電話番号を   ' Yahoo!電話帳で検索し、掲載があれば B列に○を書き込む      Dim strURL As String   Dim i   As Long      ' InternetExplorer を起動して参照する   Set mIE = CreateObject("InternetExplorer.Application")   ' InternetExplorer 可視化   mIE.Visible = True      With ActiveSheet     For i = 2 To .Cells(65536, "A").End(xlUp).Row       With .Cells(i, "A")         ' 検索結果が True なら ○ を B列に記入         If ExistPhonenum(CStr(.Value)) Then           .Offset(0, 1).Value = "○"         Else           .Offset(0, 1).Value = "×"         End If       End With     Next i   End With      ' InternetExplorer を閉じる   mIE.ExecWB OLECMDID_CLOSE, OLECMDEXECOPT_DODEFAULT   ' オブジェクト変数を開放   Set mIE = Nothing End Sub ' // Yahoo!電話帳で引数 strPhoneNumber の電話番号を検索し、掲載があれ ' // ば True を返す Private Function ExistPhonenum(ByRef strPhoneNumber As String) As Boolean      Dim lngT  As Long   Dim blnFlag As Boolean      If mIE Is Nothing Then     Err.Raise 1000, , "InternetExplorer が初期化されておりません"     Exit Function   End If      blnFlag = True   With mIE     ' 検索 URL の生成     .Navigate URL:=QUERY_URL & strPhoneNumber     lngT = timeGetTime() + TIMEOUT     ' ページの読み込みが完了するまで待機     Do While .Busy Or .ReadyState <> READYSTATE_COMPLETE       DoEvents       ' タイムアウト判定       If lngT < timeGetTime() Then         blnFlag = False         Exit Do       End If     Loop     If blnFlag Then       ' 検索結果のページに不一致キーワードが「含まれない」場合は       ' 電話番号掲載ありと判断し、関数の戻り値に True をセット       If InStr(mIE.Document.body.innerText, UNMATCH_KEYWORD) = 0 Then         ExistPhonenum = True       End If     End If   End With End Function

yokohama14
質問者

お礼

ありがとうございます。これでやってみます!

その他の回答 (1)

noname#198951
noname#198951
回答No.1

HSPでブラウザにデータを渡すプログラムを作るか、スクリプトを実行できる Webブラウザでスクリプトを組むか。 旧Sleipnirで作るのが楽かもしれないけど、プログラムを組んだ事がないと 同じかもしれないなぁ。 以前本屋のサイトに書籍番号を渡して本のタイトル、出版社名,著者などを 自動で登録していくプログラムがあったけど仕組みはそれと同じかな?

関連するQ&A

  • WEBの検索結果をエクセルに反映するには?

    エクセル初心者ですので、どなたか教えて下さい! お客様からの商品注文リストの作成をしています。 その中で、お客様の郵便番号から該当する支店を入力する欄があります。 今は1件1件郵便番号で支店の検索をして、紙に控え、手入力しています。 毎月1000件程の注文があるので、 エクセルで作ったリストの郵便番号を入力したら、自動的に検索サイトへ行き、 該当支店をエクセルの支店名欄に反映できないものかと悩んでおります。 郵便番号検索のような一覧があればシートにはりつけるのですが、 残念ながら有りません。 店の閉店や開店が目まぐるしいので常に検索して確認の必要があります。 ちなみに郵便番号で検索すると、 1つの郵便番号に対して複数の支店が混在している場合もあります。 このような場合、エクセルでは難しいのでしょうか?

  • WebページのリストをExcelに落とす方法

    Webページに掲載されている大量の店名、住所、電話番号のリストをExcelに落とす(店名、住所、電話番号の列に入れる)のに便利な方法を教えてください。 リストは複数のページにわたっており、1ページ当たり20件程度の項目があるとします。 ページのソース(テキスト)から必要なタグの項目を抽出していけばよさそうですが、プログラムを組まなければだめでしょうか(当方プログラム作成はできません)。

  • VBAで検索エンジンの自動検索とHP文章の自動収集

    VBAでYahooやGoogleの検索を自動でやることはできないでしょうか? キーワードのリストが1000個ほどあり、ネットで検索して上位に出ているサイトから文章をコピペしてまとめたいのですが、すべて手作業でやると途方もない作業量になってしまいます。 なので次のような作業をVBAやプログラミングで自動でやることはできないでしょうか? エクセルなどに入力されているキーワードで検索をする。 ↓ 検索エンジンの上位100サイト程度の中からキーワードと近接する文章をコピーする。 ↓ コピーした文章をエクセルなどにまとめる。 これを全キーワードについて自動でやってくれるようなプログラミングは可能でしょうか? あるいはすでにこういったソフトがあれば有料無料問わず教えてください。 キーワードに関する情報を集めることができればいいので必ずしも情報元は検索エンジンでなくても構いません。 例えばRSSの更新情報の中からキーワードに関する文章を集めてくるようなソフトでもかまいません。 よろしくおねがいします。 ※大学の研究のために使う予定です。

  • エクセルで自動反映させるには・・・助けて><

    おはようございます。 エクセル2003についてご教授くだされば幸いでございます^^。 例えばエクセルで基のデータの住所・郵便番号・マンション名がシート2に入っているとします。シート1の中でセルにマンション名を正しく入力すれば住所や郵便番号まで自動的にシート1に入力されるような設定はできるのでしょうか。 エクセルに関して詳しい方がいらっしゃいましたらどうかご教授願います^^。 よろしくお願いいたします。

  • 自動反映した結果を別シートへ自動反映する方法。

    ご質問失礼致します。 以前こちらにてエクセルの自動反映の方法について質問させていただいたところ、 無事に解決することが出来ました。 (こちらになります、http://okwave.jp/qa/q9009135.html ありがとうございました!) 今回質問させていただきたいのは、 更に自動反映したシートの結果を、別のシートに区分けして反映させることが可能かどうか、 ということになります。 そういったことは可能なのでしょうか? 自分で試行錯誤してみたのですが上手くいかず、 ご教授していただけますと大変嬉しく思います。 添付画像が今作っている資料と似たものになるのですが、 リストというシートより○○というシートへプルダウンメニューより入力を自動入力させてあります。 ○○というシートの中の区分と言う項目で区切り、(【あいう】と【えお】) それぞれ別のシートに反映させたいと思っております。

  • エクセルで郵便番号の自動入力方法?

    エクセルで住所録を作ったのですが、郵便番号が入っておりません。 そこで、既に入力済みの電話番号または住所から自動的に郵便番号を入力できる方法はありますか?ありましたら、教えてください。

  • エクセルデータをワードへ反映させたいのですが

    今エクセルで計算した答えをワードに手入力する作業をしています。 件数が多く大変面倒です。エクセルで求めた数字をワードに手入力すること無く自動でワードに数字を反映させたいのですが、なにか良い方法は無いでしょうか?どなたか教えてください。

  • 自動検索

    エクセルのセルに入力された住所を常に自動で郵便番号を検索し入力できませんか? げんんざいの既存のファイルにそのような機能を入れたいのですが、難しいのでしょうか? エクセルの知識は結構ありますので多少難度なことでも可能です。 よろしくお願いします。

  • エクセルの検索と自動化

    会社で、エクセルを使い、リース資産データー整理をしております。 会社にはリース資産全台帳があり、6,000件のデータがあります。 そのデータには1件1件に、会社で発番した番号付けしており、エクセルシートには、A列に会社で発番した番、B列にリース会社の契約番号を記入しております。 リースなので、毎月リース会社より満了伺いのエクセルデータが送られてくるのですが、契約番号だけなので、会社の台帳番号は記載されておりません。 そのため、リース会社のエクセルデータと、会社の台帳番号を並べて、契約番号で検索し、会社の台帳番号を見つけ、そしてリース会社のデータの右端にコピーして貼り付けています。 数が少ないうちはいいのですが、400件くらいあるとものすごく大変です。 何とかこの作業を楽にする方法ないですか? 自動的にエクセルが同じ契約番号のデータを検索し、そしてリース会社のデータ右端に会社の台帳番号が記載されるようにできますか? ご教授ください。

  • HPのWEB検索結果についてお尋ねします。

    2ヶ月前にHPを立ち上げ、その際、GoogleとYahooにロボットに巡回して貰えるようにHPのURLを申請しました。結果、4~5日でGoogle、その後、GooやMSNなど主だった所で掲載され、あるキーワード検索で、何処でも一枚目の上位に表示されるようになりました。 しかしYahooのみ、まだ全く掲載されません。なかばロボットが自動的に巡回し一ヶ月くらいで掲載されると聞いています。かれこれ2ヶ月たつわけですが、何か掲載されない理由、又、今後も掲載されないとういことが有るのでしょうか? 尚、HPは決して如何わしいサイトでは有りません。 その辺の事情を詳しく分かる方、宜しくおねがいします。

専門家に質問してみよう