ExcelVBAでブラウザを制御
ExcelVBAでネット情報を効率よく収集するため、買ったまま放置してた本書を引っ張り出しました。ただし本書はInternetExplorerの制御に特化しているため、Chrome制御できる方法ないか探したところ、いいもの見つけました。
Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応
- 作者: 近田伸矢,植木悠二,上田寛
- 出版社/メーカー: インプレス
- 発売日: 2013/04/19
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (7件) を見る
本書はExcelVBAでInternetExplorer(以下、IE)を操作することで、様々なデータ収集を行う方法が書かれたもの。準備は、参照設定で「Microsoft Internet Controls」をチェックするだけ。
IEを起動して「VBA」でgoogle検索するだけなら、以下のコードで可能です。既に起動したIEを探すのは、ややこしいコードが必要。
Sub ieTest() Dim ie As InternetExplorer Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.Navigate "https://www.google.co.jp/#q=VBA" End Sub
ただ、普段IEは使ってなく、今回のコードテストで久々に起動したくらい。できることならChromeを操作したい。いい方法ないかと探したら、ありました。Selenium VBAというものをインストールすれば、かなり簡単に使えるよう。しかも、Firefoxなど他のブラウザも使えるっぽい。早速インストールすることに。
Selenium VBA: ブラウザをVBAから自動操作するだた1つの冴えた方法 - ClockAhead 開発Blog
Seleinum の公式サイト(Downloadsのページ)よりダウンロード。最新バージョンでも更新が2年以上前なのが気になるが・・
ダウンロードファイルを実行すると、Wizardが起動。そのまま進みます。
お約束の同意やフォルダ選択などは、そのまま進みます。
インストール終了後に以下のメッセージが。Firefoxは入ってないので・・
その後ExcelVBE起動し、参照設定をすれば準備完了。
以下のコードで、一応動くのですが・・・
Sub ieTest() Dim sel As New SeleniumWrapper.WebDriver sel.Start "Chrome", "https://www.google.co.jp/#q=VBA" sel.get ("/") End Sub
こんなメッセージが出てくるのが気になります。
挙動で気になる部分はありますが、Chromeが操作できるほうがありがたいので、いろいろ試してみたいと思います。