- ベストアンサー
エクセルからGoogle検索
エクセルの複数のセルに入っているテキストで それぞれのGoogle検索を一気に行う、ということは可能でしょうか? A1 「モバイル パソコン」 A2 「パソコン GPS」 A3 「NTT GPS」 と各セルに入力されていたとして、 「モバイル パソコン」「パソコン GPS」「NTT GPS」 とそれぞれのGoogle検索を一度に行い、 別々のウィンドウで検索結果を開き、検索結果を比較したいのです。 検索語が少なければ、手動で行っても時間はかからないのですが、 多数の検索語のパターンで検索するため、一度にできる 方法はないかなあ、と悩んでいます。 テキストの入力されているソフトはエクセルでなくても良いのです。 困っています! よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。一例です。 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
その他の回答 (2)
- KenKen_SP
- ベストアンサー率62% (785/1258)
制限・・としながら、マクロを終了させるコードが抜けてましたね。 失礼しました。下記の部分を追加して下さい。 ◆誤 > 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 程度までで留めて下さい。
お礼
ご丁寧に追加情報ありがとうございました。 教えていただいたのをじっくり見て、 勉強を始めたいと思います。 どうもありがとうございました。
- okormazd
- ベストアンサー率50% (1224/2412)
UWSCでできそうだが、やったことはない。 http://www.uwsc.info/
お礼
教えていただきありがとうございました。 このソフト、いろんな場面で使えそうですね! こんなのがあるなんて知りませんでした!
お礼
凄いすごいすごいすごい、すごいです!!! 出来ました!涙が出そうです!感動しました!!!! こんなことができるKenKen_SPさんは凄い! 完全に途方にくれていたのですが、あっという間に 解決してしまいました! どうやったらこんなことが出来るようになるのでしょうか? 私も勉強したら出来ますかね? 何から勉強したらいいんでしょう? とにかく、本当にどうも有難うございました。 嬉しいです!!!!