ExcelVBAでIE(InternetExplorer)を操作・クローリング(スクレイピング)するための初期設定について説明します。
5分で終わる内容ですのでサクッと進めてしまいましょう。
マクロファイルを作る
ExcelVBAでIE(InternetExplorer)を操作・クローリング(スクレイピング)するためファイルを作成します。
Excelを立ち上げて
F12などを押してファイルをExcelマクロ有効ブックで保存します。(ここでは場所はデスクトップ、ファイル名はBook1.xlsmで保存しています。)
参照設定をする
Alt+F11もしくは開発タブ→Visual Basicのボタンを押して、Visual Basic Editorを開きます。
ツール→参照設定をクリックします。
参照設定の中から「Microsoft HTML ObjectLibrary」と「Microsoft Internet Controls」を見つけて、チェックを入れて、OKボタンを押します。
ここまで終わったらファイルを上書き保存しておきましょう。
これで初期設定は終了です。
ExcelVBA+IEでYahoo!JAPANを開いてみる
ためしにExcelVBAのプログラムでInternetExplorerを起動してYahoo!JAPANを開いてみましょう。以下で手順を解説します。
モジュールの作成
左側のVBAProject(Book1.xlsm)のところで右クリック→挿入→標準モジュールをクリックします。
画面右側にプログラムが書けるようになります
そこに以下のプログラムを書いていきましょう。コピペでもいいですが、プログラムを習得するなら、最初は手入力で書いていくことをオススメします。
この辺りはクローリングプログラムの基本となるので覚えてしまうくらいでもいいと思います。なお筆者はこのプログラムはすべて覚えています。
コピー用
Sub aaa()
Dim targetURL As String
Dim ie As InternetExplorer
Set ie = New InternetExplorer
ie.Visible = True
targetURL = "https://www.yahoo.co.jp"
ie.navigate targetURL
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
End Sub
画面としてはこんな感じになるはずです。
プログラムの実行
実行のやり方は2パターンあります。下の画像2つ(Aパターン・Bパターン)どちらでも実行可能です。
■Aパターン
■Bパターン
Yahoo!JAPANがIE(InternetExplorer)で開くはずです。
ここでは一旦、VBAでIEが自動で起動しYahoo!JAPANが開くという感触をつかめればOKですので、プログラムの詳細説明は省きます。
プログラムの
https://www.yahoo.co.jp を
https://www.google.co.jp に変えれば、Googleが開きます。URLを変更したりしてみて動作の感触をつかんでもらえれば十分です。
補足(テクニック)
Excel VBAでIEを操作・クローリング(スクレイピング)するためには、上記にもあったとおり、参照設定が必要です。
毎回ゼロから参照設定をするのは面倒なので、新たにプログラムを書く場合には、すでに参照設定しているファイルをコピーして使うと楽です。(参照設定はファイル単位です)
私も今は、ゼロからプログラムを書くというのはなくて、すでに作っているファイルをコピーして、修正して新しいプログラムを作るという流れでやっています。
なので参照設定を毎回することはありません。
番外編:ExcelVBA+IE操作習得にあたり筆者がオススメする本
Excel VBA+IE(InternetExplorer)でクローリング(スクレイピング)を習得するなら、この本は超オススメです。
私も初心者時代、この本から学び、クローリング(スクレイピング)を習得していきました。
会社員時代、私は部署の課員全員にこの本を勧めています。
Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応
ExcelVBA+IEでのクローリング(スクレイピング)界においてバイブル書と言っても過言ではないと思います。
私はExcelVBA+IEでのクローリング(スクレイピング)本を何冊か買っていますが、この本がNo.1です。