ExcelでGoogle検索キーワードの順位に対応するウェブURLを取得したいときがあります。
実はGoogle検索キーワードの順位に対応するウェブURLを取得するExcel関数は標準では実装されていません。
しかしExcel VBAの機能を活用すれば、Excel関数として自作関数を作成して使用することができます。
このページでは、Excel関数でGoogle検索順位に対応するウェブページを自動取得する方法を紹介します。
目次
エクセル関数でGoogle検索の順位に対応するウェブリンクを取得する
– 引数1:B2:検索キーワード
– 引数2:C2:検索順位
このページで紹介するVBAプログラムをFunctionプロシージャとして設定しておくと、上記のGoogleSuggestion関数によってGoogle検索順位に対応するウェブリンクを取得できます。
引数1で指定した「検索キーワード」を取得し、セルのウェブURLの情報をもとに処理を行い、ウェブページのタイトルを出力します。
関数の処理時間は1セルあたり約1秒
今回紹介するエクセル関数は、タイムラグがあり一つのセルあたり1.0秒程度の処理時間がかかります。
この程度のタイムラグであれば、仕事に大きな影響を及ぼすものではないと思います。
ただし複数セルをまとめてGoogleSuggestion関数を使うと、タイムラグが発生することがあります。
GoogleSuggestion関数を実装したExcelをダウンロードする
このページで紹介しているGoogleSuggestion関数を実装したExcelファイル(VBAを実装したファイル)をすぐに使いたい人は、以下のフォームからダウンロードできます。
登録したメールアドレスへ「VBAプログラムが含まれたエクセル」を送信します。
本プログラムの内容をそのまま使用可能です。ぜひお仕事にお役立てください。
Excel関数としてGoogleSuggestionを使う方法|作成手順
手順2. GoogleSuggestion関数を使う
ExcelでGoogleSuggestionを関数として使用するための手順を紹介します。
手順1. VBAプログラムをExcelに設定する
以下のVBAプログラムをエクセルに設定します。
VBAのプログラムソース解説
今回使用するVBAプログラムの概要は以下です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
'プログラム0|変数指定の設定 Option Explicit 'プログラム1|プログラム開始 Function GoogleSuggestion(rng As Range, num As Long) As String 'プログラム2|引数1のrng(セル)の値をkeywordとして取得 Dim keyword As String keyword = rng.Value 'プログラム3|Google検索のurlを取得 Dim url As String url = "https://www.google.com/search?num=30&q=" & keyword 'プログラム4|HTTPリクエスト設定 Dim HttpReq As XMLHTTP60 Set HttpReq = New XMLHTTP60 'プログラム5|URLで指定したウェブページの情報をGETリクエストで取得 With HttpReq .Open "GET", url .send End With 'プログラム6|HTTPリクエストの読み込み完了を待つ Do While HttpReq.readyState < 4 DoEvents Loop 'プログラム7|ウェブページの情報をテキストで取得 Dim oHtml As New MSHTML.HTMLDocument oHtml.body.innerHTML = HttpReq.responseText 'プログラム8|検索順位に対応するaタグを取得 Dim objTag As Object Dim link As String Set objTag = oHtml.getElementsByClassName("yuRUbf")(num - 1).getElementsByTagName("a")(0) link = objTag.href 'プログラム9|戻り値としてlinkを設定 GoogleSuggestion = link 'プログラム10|オブジェクト解放 Set objTag = Nothing Set HttpReq = Nothing 'プログラム10|プログラム終了 End Function |
上記のプログラムをVBAの標準モジュールに設定します。
VBAの設定方法
ExcelでVBAを使う方法がよく分からなかったり設定に不安があったりする人は、以下の動画をご覧ください。
入門エクセルマクロの使い方|マクロ作成から実行までを徹底解説
上記の動画の内容は、以下のページで解説をしています。
手順2. GoogleSuggestion関数を使う
上記のVBAをExcelに設定することで、以下のエクセル関数を使うことができます。
上記のように入力することで、B2に検索キーワード、C2の検索順位を入力しておくことで、セルD2に「=GoogleSuggestion(B2,C2)」と入力します。
そうすると、自作のエクセル関数GoogleSuggestionの結果として、以下のようにD2のウェブリンクを出力します。
手順の解説はここまでとなります。
注意点
このエクセル関数は1セルあたりの処理時間が約1秒あります。
HTTPリクエストによりウェブ通信を行っているため、そのタイムラグにより1秒程度の処理時間が必要になります。
したがって一度に100セルのような大量セルに対して、この関数を実行すると、エクセルが固まります。
また数式の再計算をONにしていると、エクセルで計算処理するたびに、本ページの関数処理が実行されることになり、そのたびにエクセルが固まるリスクがあります。
なおデフォルトで数式の再計算はONとなっていますので、注意が必要です。
エクセル仕事を効率化する事例
ここではエクセル関数でウェブページのタイトルを取得する方法を紹介しました。
しかしこれ以外にもエクセル仕事を効率化する関数は数多く存在します。
以下のページで事例を合わせて紹介していますので、参考にしてみてください。
またエクセル関数に限らず、エクセル仕事を改善したい場合は、以下のページも参考になるはずです。