Excel-VBA を活用して、IEを操作・スクレイピングの仕方について、
- Excel VBAを活用して、IEのホームページの画面を操作したい。
- でも、どのように操作するかわからないな~。
そんなあなたの悩みにお答えして、IE操作そしてスクレイピングのプログラミングの記述方法を解説していこうと思います。
IEの操作手順を理解しよう!
IEの基本的な作成手順を理解しておきましょう。
- IEを起動する
- htmlソースをなめる(プログラムを探す)
- 目的のメソッド名を取得する(クリックボタンやテキストボックス名を取得する)
- 目的のメソッドを取得したら、それを選択・実行する
- IEを閉じる
1.IEを起動する
まず、IEを起動する処理を書いていきましょう。
IEを起動するには、まずObject変数を記述して、IEを動かしていきます。
2.htmlソースをなめる
次に、htmlソースを全部を読み込む処理が作っていきます。
3.目的のメソッド名を取得する
まずは、目的のメソッドを探すために、ソースの中から目的の「ボタン名」や「テキスト名」を探し、取得していきましょう。
4.目的のメソッドを「選択・実行」する
「ボタンをクリックする処理」「テキストに入力する処理」のこれら2つを把握していれば、ある程度操作が可能になります。
5.IEを閉じる
そして、最後にIEの画面を転移(移動)したり、IEを閉じる処理を記述しましょう。
これらの処理を記述する基本的なメソッドを覚えておきましょう。
IE操作に必要な参照設定変更箇所
続いて、IEを操作するための参照設定についてみていきましょう。
IEを操作する際には、そのプログラムを動作する環境が必要です。その設定がこの「参照設定」で行うことができます。
ポイント
マクロ ➡ ツール ➡ 参照設定
から変更しましょう。
【参照設定画面】
ポイント
<IE操作に必要な参照設定について>
- IE control 6.0
- Microsoft Internet Controls
このどちらか、もしくは両方にチェックを入れて、エクセルを保存して、再度立ち上げましょう。
これで、IEのプログラミング環境が整いました。
この設定をしておかないと、プログラミングを記述してもエラーになりますので、必ず設定を忘れないように!
IE操作に必要なメソッドについて理解しよう!
それでは、実際にプログラミングを作成して、IEから情報を取得するためのメソッドを覚えていきましょう!
➡まず使用するメソッドはこちら
<IE操作に必要なメソッド5つ>
- IE変数指定 : Set objIE = CreateObject("InternetExplorer.application")
- URL指定・起動 : objIE.navigate URL名
- ボタン名取得:Set objINPUT = objIE.Document.getElementsByTagName("INPUT")
- テキストボックスに名称セット: objIE.Document.All.テキストボックス名.Value
- ボタンを検索してクリック : objIE.Document.All.ボタン名.Click 'クリック
これらの記述をまぜ合わせることで、検索ボタンを探索して、押下したり、テキストボックスに値を入力することができるようになります。
但し、この名称は、サイトによってもボタンのID名が異なっていますので、プログラムソースから確認しましょう。
IE操作のプログラミングの記述方法
それでは、実際にスクレイピングのVBAのプログラミングの記述方法について、解説していきましょう。
IE操作の記述方法はこちら
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | Sub IE_Ope() Dim objIE As Object On Error GoTo ERROR_: Set objIE = CreateObject("InternetExplorer.Application") ’IE操作のObject変数指定 objIE.Visible = True 'フレームページに移動 objIE.navigate "URL名" ’IE指定・起動 Call IEWait(objIE) '3秒停止 Call WaitFor(3) 'IEを待機 objIE.Document.getElementById("userid").Value = "ID名" objIE.Document.getElementById("passwd").Value = "P.W." Call IEWait(objIE) '「VBA」を含むアンカーテキストのリンクをクリック Call WaitFor(3) '3秒停止 Call IEButtonClick(objIE, "ログイン") Call WaitFor(3) '3秒停止 Call IEWait(objIE) '「VBA」を含むアンカーテキストのリンクをクリック Call WaitFor(3) 'IE終了 objIE.GoBack '戻る objIE.Quit Set objIE = Nothing Exit Sub ERROR_: Exit Sub End Sub |
IE操作をする上で大切なこと
IE操作をする上で大切なことは、2つあります。
<IE操作をする上で2つの大切なこと>
- IEの動きの流れを知る
- IEのボタンやテキストなどにも名称がある
まずIE操作の記述の流れで大切なことは、サイトがどのような動きをしているかを考えながら記述することです。
「WEBページを開く処理➡きちんと開くまで待機する➡テキストボックスに入力➡ボタンをクリックする➡開くまで待機する」
このような流れで、プログラミングを書いていきます。
そして、スクレイピングをする上でもう一つの大切なことが、ブラウザ上のボタンやテキストにも名称があるということ。これらをサイトのソースから見つけ出し、データをセット、そして操作できれば、IEの自動化が可能になります。
ちなみに、下記ツールも私が新たに開発した自動クリックツールの一つで、楽天ポイントを取得できる仕組みです。
<楽天Web検索の自動クリックツールのご紹介>
楽天Web検索を自動でクリックできる機能を開発しました。これにより、何度も手動で検索しなくても、自動で検索してくれるので、手軽に楽天ポイントをゲットできるVBAによる仕組みです。noteのページにて期間限定価格で100部ご紹介しております。ご興味のある方は下記ページより詳細をご確認下さい。^^
目安2~3ヶ月自動で動かせば、すぐに元が取れるので、プログラミングの勉強と楽天ポイント稼ぎをされている方はぜひこの機会にどうぞ(^_^)
IE操作する際の注意すべき点とは
IE操作する際には、まず最初に注意するべきことがあります。
それは、サイトのソースをきちんと確認することからはじまります。それはなぜか?
IE操作をする時に注意すべき3つのこと
その理由には、下記3つのことが挙げられます。
<IE操作において注意すべき3つの場合>
- JavaScriptで記載されている場合
- フレーム化されている場合
- IEのバージョンによってメソッドが動作しない場合がある
IEサイト側も、スクレイピングを嫌がるところもあるため、サイトのソースをまめに変更する企業もあります。
そうすることで、情報が突然取得できないこともありますので、エラーが起こった場合には、すぐに確認するようにしましょう!
またサイトがフレーム化されていることで、メイン画面からソースを読めなかったり、javascriptで記載されているものは、VBAでは、容易に操作ができません。
VBAでIEを操作するならこの教材がおすすめ
VBAでIEを操作・スクレイピングをしたいなら、下記教材は、初心者の方でもすごくわかりやすくかかれていますので、かなりおすすめです^^
IEのソースの読み込みからボタンのクリック処理等細かく記述されています。私もこの教材に何度も助けられました。
※在庫がなくなることもありますので、ご興味のある方はお早めにご購入下さい。
まとめ
スクレイピングを行うには、VBA環境の設定が必要不可欠で、サイトによっても情報を取得できないこともありますので、正しい知識を習得した上でスクレイピングに挑戦してみてくださいね。
ポイント