• ベストアンサー

エクセルからGoogle検索

エクセルの複数のセルに入っているテキストで それぞれのGoogle検索を一気に行う、ということは可能でしょうか? A1 「モバイル パソコン」 A2 「パソコン GPS」 A3 「NTT GPS」 と各セルに入力されていたとして、 「モバイル パソコン」「パソコン GPS」「NTT GPS」 とそれぞれのGoogle検索を一度に行い、 別々のウィンドウで検索結果を開き、検索結果を比較したいのです。 検索語が少なければ、手動で行っても時間はかからないのですが、 多数の検索語のパターンで検索するため、一度にできる 方法はないかなあ、と悩んでいます。 テキストの入力されているソフトはエクセルでなくても良いのです。 困っています! よろしくお願いいたします。

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

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

こんにちは。一例です。 IE 限定でなく、OS の規定ブラウザで開くためあえて API を使いました。 なお、コードを VBE にコピペすると Google Url の部分が若干文字化け します。適当に直して下さい。 Option Explicit Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _     ByVal hwnd As Long, _     ByVal lpOperation As String, _     ByVal lpFile As String, _     ByVal lpParameters As String, _     ByVal lpDirectory As String, _     ByVal nShowCmd As Long) As Long Public Const SW_SHOWNORMAL = 1 Sub Googleで選択範囲を一括検索()   Const BASEURL As String = "http://www.google.co.jp/search?hl=ja&ie=UTF-8&q="   ' // 無制限にウインドウを開くのはリソース不足が発生する可能性があるため、   ' // ウインドウ数を制限する仕組みは必要かもしれない。とりあえず、簡易的   ' // に選択セル数で制限しておく。   Const MAX_CNT As Long = 5      Dim url As String   Dim tmp As String   Dim r  As Range      If Not TypeOf Selection Is Range Then Exit Sub   If Selection.Cells.Count > MAX_CNT Then     MsgBox "選択セル数が多すぎます(制限:" _         & CStr(MAX_CNT) & "以下)", vbCritical   End If   For Each r In Selection.Cells     If Len(r.Text) Then       url = BASEURL & UrlEncode(Replace$(r.Text, " ", " "))       Call ShellExecute(0&, "OPEN", url, vbNullString, vbNullString, SW_SHOWNORMAL)     End If   Next r End Sub ' // URL エンコード Public Function UrlEncode(ByVal sText As String) As String   If Len(sText) = 0 Then Exit Function   With CreateObject("ScriptControl")     .Language = "JScript"     UrlEncode = .CodeObject.encodeURI(sText)   End With End Function

naogo
質問者

お礼

凄いすごいすごいすごい、すごいです!!! 出来ました!涙が出そうです!感動しました!!!! こんなことができるKenKen_SPさんは凄い! 完全に途方にくれていたのですが、あっという間に 解決してしまいました! どうやったらこんなことが出来るようになるのでしょうか? 私も勉強したら出来ますかね? 何から勉強したらいいんでしょう? とにかく、本当にどうも有難うございました。 嬉しいです!!!!

その他の回答 (2)

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

制限・・としながら、マクロを終了させるコードが抜けてましたね。 失礼しました。下記の部分を追加して下さい。 ◆誤 >   If Selection.Cells.Count > MAX_CNT Then >     MsgBox "選択セル数が多すぎます(制限:" _ >         & CStr(MAX_CNT) & "以下)", vbCritical >   End If ◆正 Exit Sub を追加   If Selection.Cells.Count > MAX_CNT Then     MsgBox "選択セル数が多すぎます(制限:" _         & CStr(MAX_CNT) & "以下)", vbCritical     Exit Sub   End If あと、 > Const MAX_CNT As Long = 5 この部分を大きくすると選択できるセル数が増えますが、あまり 大きくすると OS がフリーズするかもしれないので、最大でも 10 程度までで留めて下さい。

naogo
質問者

お礼

ご丁寧に追加情報ありがとうございました。 教えていただいたのをじっくり見て、 勉強を始めたいと思います。 どうもありがとうございました。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

UWSCでできそうだが、やったことはない。 http://www.uwsc.info/

naogo
質問者

お礼

教えていただきありがとうございました。 このソフト、いろんな場面で使えそうですね! こんなのがあるなんて知りませんでした!

関連するQ&A