Internet Explorer自動操作

VBAでIE操作「Google検索する(GET送信)」【エクセルマクロ】

検索したいキーワードがたくさんある場合、人力で行わなくても、VBAがあればマクロが自動で取得します。
IEを使用しGoogle検索を行い、誰でも簡単に結果を抽出する事が可能です。

ご丁寧にGoogleトップページからキーワード検索する事もよいのですが、
GET送信をVBAから行う事で検索結果を直接表示する事が可能です。

GET送信とは

HTTP通信のメソッドの一つです。似たキーワードで「POST通信」があります。
ざっくり説明すると検索するキーワードをURLに付与します。
Google検索の場合、下記のように「search?q=」の後に指定したキーワードを付与してURLを起動します。

■Googleでtestと検索した場合のURL(ググったURL)
https://www.google.co.jp/search?q=test

Google検索サンプルコード

VBAでも同様にキーワードを入れてNavigateするだけです。

Sub sample_IE_Google_Search()
    Dim objIE As InternetExplorer
    
    '■IEを起動
    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Visible = True
 
    '■Google検索結果に直接アクセス(testで検索)
    objIE.navigate "https://www.google.co.jp/search?q=" & "test"
    Call Call_IE_WaitTime
    

    '■検索結果はClassName「rc」に格納された1番目(0)のURLを取得
    MsgBox objIE.document.getElementsByClassName("rc")(0).getElementsByTagName("a")(0).href
    
    '■複数キーワードの場合は人が検索するときと同じ。(test sampleと半角スペースを入れて検索)
    objIE.navigate "https://www.google.co.jp/search?q=" &"test" & " " & "sample"
 
End Sub

注意点

  • 毎度おなじみですが、Call_IE_WaitTimeの処理はこちらを参照ください。
  • 処理件数が増えるとGoogleから弾かれる(ロボットと思われ、正しく検索結果を表示してくれなくなる)為、
    ある程度目視の確認も必要です。

 

その他

Internet Explorerを使用して、Webスクレイピングは敷居が高い風に捉えられますが、
上記のように、パーツ化して組み合わせ処理するだけです。

Web上のデータを触りたい要望は会社様でも個人様でも多いと思います。
VBA IE操作を覚えて効率化しませんか?
作成が大変であれば弊社で代行開発も可能です。お気軽にお問い合わせください。

 

コメント

タイトルとURLをコピーしました