セルの値をGoogle検索するには
Excelの内容を直接Google検索できればラクだなあ、と思うことがあります。その場合にハイパーリンクを使う方法が一般的ではありますが、ハイパーリンクはどうしても内容がURL文字列でなければならない制約があります。
また、ハイパーリンクの場合は起動するブラウザはWindowsの既定の設定で指定されたブラウザに限定されてしまいます。そうではなく、任意のブラウザでセルに書いた内容をそのまま検索したい、という場合です。
そのような場合には、ブラウザのアプリケーションに引数としてURLを渡して起動する、という方法を採ります。
アプリケーションの起動になるため、Shell関数を使います。
Shell関数の詳細については「VBAで他のアプリケーションで起動する(Shell)」をご参照ください。
ブラウザの指定
既定のブラウザがInternetExplorerになっていても、ChromeやFireFoxなどで検索したい場合があります。
以下のように「コントロールパネル」→「既定のプログラム」→「プログラムのアクセスとコンピュータの既定の設定」を開いて、以下のダイアログで既定のブラウザを変えてしまうのもありです。
しかし、今だけこのブラウザで開きたい、という場合もあります。
なので、使いたいブラウザのアプリケーションのフルパスを取得しておく必要があります。
通常はデスクトップやメニューにあるブラウザのショートカットのプロパティを見ることで分かります。
ちなみにWindows7であれば有名どころの3つは以下のような場所にあるようです。
InternetExplorer
C:\Program Files\Internet Explorer\iexplore.exe
FireFox
C:\Program Files\Mozilla Firefox\firefox.exe
Chrome
C:\Users\ログインユーザー名\AppData\Local\Google\Chrome\Application\chrome.exe
Google検索のURL
Googleでキーワードを検索すると、URL入力欄に表示されているURLが変わっていることが分かると思います。
HTTPプロトコルではデータをサーバに渡す場合に、GETとPOSTの2種類があります。
GETはURLにデータを入れて渡す方法で、POSTはURLを使いません。
Google検索ではGETを採用しているため、検索キーワードを書いた状態のURLを事前に作成することが可能です。
具体的には「www.google.co.jp/search?q=」の一番右の=に続いて検索キーワードを書けば、そのキーワードの検索結果が表示されます。
サンプルコード
以下は指定したブラウザでアクティブセルの値をGoogle検索するサンプルコードです。
ブラウザの種類はIE、FireFox、Chromeの3種類のパスを書いていますが、実際には使いたいブラウザのパスを入れてください。
ブラウザの起動はShell関数で行っています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub WebSearchTest() Dim sApl '// ブラウザのパス Dim sWord '// 検索キーワード Dim sUrl '// Googleの検索URL '// ブラウザのフルパスを指定 ' sApl = "C:\Program Files\Internet Explorer\iexplore.exe" ' sApl = "C:\Program Files\Mozilla Firefox\firefox.exe" sApl = "C:\Users\testuser\AppData\Local\Google\Chrome\Application\chrome.exe" '// 検索URLを指定 sUrl = "www.google.co.jp/search?q=" '// 検索キーワードを取得 sWord = ActiveCell.Value '// ブラウザを起動してGoogle検索を行う Call Shell(sApl & " " & sUrl & sWord) End Sub |
実行結果
アクティブセルに「福岡 水炊き」と書いてある状態にします。
次に、上のサンプルコードを実行すると、Chromeが起動してGoogle検索が行われます。