• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Google検索の結果、5位までをセルに記入するマ)

Google検索結果をExcelに取得する方法

このQ&Aのポイント
  • Excel2016を使って、Google検索の結果を自動的に取得する方法をご紹介します。
  • 特定の語句の検索結果(5位まで)をExcelに取得し、タイトルとURLを表示させることができます。
  • マクロを使用して、ロボットでない証明のクリックをしながら、検索結果を自動で取得することができます。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (774/1620)
回答No.2

>実は、検索したい語句が1000以上あります。 何で最初に書いてくれないんですか。 てっきり6件以下だと思いました。 ' Sub Macro1() '   Dim Col As Integer '   For Col = Cells(11, Columns.Count).End(xlToLeft).Column _       To Cells(1, Columns.Count).End(xlToLeft).Column     GoogleGet Col, 5, False   Next Col End Sub このように置き換えれば、既にデータのある所は処理されず、空白の所だけ処理されます。

その他の回答 (1)

  • SI299792
  • ベストアンサー率47% (774/1620)
回答No.1

' Option Explicit Declare Sub Sleep Lib "kernel32" ( _   ByVal dwMilliseconds As Long) ' Sub Macro1() '   Dim Col As Integer '   For Col = 1 To Cells(1, Columns.Count).End(xlToLeft).Column     GoogleGet Col, 5, True   Next Col End Sub ' Sub GoogleGet(Col As Integer, Count As Integer, Visible As Integer) '   Dim IE As Object   Dim Links As Object   Dim Row As Integer   Dim Length As Integer '   Set IE = CreateObject("InternetExplorer.Application")   IE.Navigate "https://www.google.co.jp/search?q=" & Cells(1, Col)   IE.Visible = Visible   BusyWait IE   Row = 2 '   For Each Links In IE.Document.Links '     If Left(Links.InnerHtml, 3) = "<h3" Then       Length = InStr(Links.InnerText & vbCrLf, vbCrLf) - 1       Cells(Row, Col) = Left(Links.InnerText, Length)       Cells(Row + 1, Col) = Links.Href       Row = Row + 2 '       If Row = Count * 2 + 2 Then         Exit For       End If     End If   Next Links '   If Visible > 1 Then     IE.Quit   End If   Set IE = Nothing End Sub ' Sub BusyWait(IE As Object) '   While IE.Busy Or IE.ReadyState < 4     DoEvents     Sleep 100   Wend End Sub     GoogleGet Col, 5, False の所ですか、数を増やせば件数を増やせます。(最大10) また、その次は、TrueならIE表示、False なら非表示、1ならIEを開いておく。デバックの為のものです。

mute_low
質問者

お礼

回答&マクロありがとうございます! 実は、検索したい語句が1000以上あります。 ですが、途中でロボットでない証明のクリックがあり、 一度マクロを止めないとならないです。 その際、再開すると、またA1から始めてしまいます。 これを、前回の途中から始めるようにはできるでしょうか? A1から検索結果の取得 ↓ ロボットでない証明のクリック画面でマクロストップ ↓ ストップした所から、マクロ再開 このような形が理想です。 よろしくお願いいたします。

関連するQ&A