どうも、浜男です。
今週は久しぶりの在宅ワークで、全く仕事のやる気が出ません。
暇なので、久々にブログのレイアウトを変えてみました。タイル状に並べてみて、美味しそうな写真が沢山見えるようになったので結構気に入ってます。
暇なので、Excel VBA tipsシリーズ!(1年ぶり)
色々なワードでgoogle検索したい時ってありますよね。
10件くらいならいいですけど、50件とか超えてくると、「excelでセルコピーして、googleで貼り付け」って結構手間に感じるものです。
そこで下記!
事前準備(excelでインターネット操作ができる状態にする)
まずは、VBE(エディタ)の、ツール⇒参照設定で下記にチェックをつけておきます。
・Microsoft HTML Object Library
・Microsoft Internet Controls
コード1!
Sub search()
Dim rgActiveCell As Range
Rowlast = Cells(1, 3).End(xlDown).Row ‘最終行番号を取得
‘C列の最終行までgoogle検索
‘対象シートは、”キーワード検索”としておく
For i = 1 To Rowlast
Set rgActiveCell = Worksheets(“キーワード検索”).Cells(i, 3)
Dim strURL
strURL = “https://www.google.co.jp/search?q=”
ActiveWorkbook.FollowHyperlink Address:=strURL & rgActiveCell
Next
End Sub
“キーワード検索”という名前のシートを作成して、C列の1行目から検索したいワードをずらっと書いておけばオッケー。
コード2!(エラーが出たとき)
コード1で最初はうまく動きましたが、複数回実行していると、「必要な情報をダウンロードできません」とのエラーが発生。。
必要な情報ってなんだ?と思い、色々調べてみるもよく分からず・・。どうやらハイパーリンクがらみのエラーはよくある話らしいです。
下の記事を参考に、shellで実行したところ動きました。
https://soudan1.biglobe.ne.jp/qa9613106.html
コードは下記!
Dim word As String
Rowlast = Cells(1, 3).End(xlDown).Row ‘最終行番号を取得
For i = 1 To Rowlast
word = Worksheets(“キーワード検索”).Cells(i, 3).Value
Dim strURL As String
strURL = “https://www.google.co.jp/search?q=” & UrlEncodeUtf8(word)
CreateObject(“wscript.shell”).Run strURL, 1
Application.Wait Now + TimeValue(“00:00:02”)
Next
End Sub
Dim objSC As Object
Set objSC = CreateObject(“ScriptControl”)
objSC.Language = “Jscript”
UrlEncodeUtf8 = objSC.CodeObject.encodeURIComponent(strSource)
Set objSC = Nothing
End Function