- ベストアンサー
Excelの文字を検索させるVBA
毎日検索するワードがあるので、IEにあるgoogleツールバーにExcelの文字列を代入してタブ毎に検索結果を表示または、Excelに取り込みたいと思います。 このような事はVBAを使えば可能なのでしょうか? 抽象的な質問で恐縮ですが、おわかりの範囲でお教えください。 バージョンはExcel2003です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ワークシートのA列に検索したい文字を打ち込んでおき、そのセルを順にクリックすると、Googleの検索を行なうマクロの一例です。 当該ワークシートのシートモジュールに書いてください。 Dim objIE As Object Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub '複数セル不可 If Target.Column <> 1 Then Exit Sub 'A列のみ対象 'IEが起動しているかチェック。objIE.Nameプロパティの取得に成功したら起動とみなす。 Dim tmp As String On Error Resume Next tmp = objIE.Name If Err.Number <> 0 Then 'エラーならIEが起動していないので、起動する Set objIE = CreateObject("InternetExplorer.Application") End If On Error GoTo 0 With objIE .Navigate "http://www.google.co.jp/" .Visible = True Do While .Busy = True DoEvents Loop .Document.getElementById("q").Value = Target.Text 'テストボックスへ入力 'オートコンプリートなどの機能が働く場合があるので、念のため待機 Do While .Busy = True DoEvents Loop .Document.forms(0).submit '送信ボタンクリック End With End Sub
その他の回答 (1)
- merlionXX
- ベストアンサー率48% (1930/4007)
> VBAエディタにSubをつけて貼り付けたのですが実行すると「end sub」がありません。 というメッセージが出てしまいうまくいきませんでした。 え?Subをつけて貼り付けた? いったいどこにSubをつけたのですか? 回答のコードにSubはすでに入っています。 ひょっとしてDim objIE As Object の前にでも? このDim objIE As Object はプロシージャの外に出す必要があるのでこの前にSubをいれてはだめです。 それから、回答にもわざわざ「当該ワークシートのシートモジュールに書いてください。」とことわり書きしましたが、標準モジュールではなくシートモジュールに書いたのでしょうか? シートモジュールは当該ワークシートのシートタブを右クリックして「コードの表示」で出てきます。
補足
ご迷惑をおかけしました。無事できました。お手数をおかけしました。
お礼
ご回答ありがとうございました。 ExcelのVBAエディタにSubをつけて貼り付けたのですが実行すると「end sub」がありません。 というメッセージが出てしまいうまくいきませんでした。 私の能力不足で読みこなしができないのですが、勉強して理解できるようにしていきたいと思います。