VBAでIE操作(InternetExplorer操作)
ExcelVBAマクロでIEを操作し、Webスクレイピング、Webクローリングをする事が可能です。
マクロがインターネットエクスプローラーを自動で操作し、
WEBのデータ取得・登録などの、各種WEB操作します。
以下のパーツをコピペでOK
今回はIE起動後、リンクをクリックする処理です。
クリックの基本です。
'■id要素をクリック objIE.document.getElementById(“★★★”).Click '■Name要素をクリック objIE.document.getElementsByName(“★★★”)(●●●).Click '■Class要素をクリック objIE.document.getElementsByClassName(“★★★”)(●●●).Click
※クリック後は、ページ読込の為、読み込み待ち処理が必要です。
記号★、●の意味
コード記号 | 意味 | 内容 |
★★★ | 属性 | 下記参照。 |
●●● | 添え字 | idの場合は不要(一つしかない為) それ以外は先頭から〇番目を入力 ※最初は0です。1ではありません。 |
idのサンプル(amazon)
idはhtml内で重複する事はありませんので、クリックするのは簡単です。
amazon検索ボタンのhtmlサンプルです。※ 2020年6月30日現在
/*■amazonのhtmlコード(検索ボタン)id*/ <span id="nav-search-submit-text" class="nav-search-submit-text nav-sprite> 検索 </span>
検索ボタンは「id=”nav-search-submit-text”」とid属性が存在しています。
'■id要素をクリック objIE.document.getElementById(“nav-search-submit-text”).Click '■もちろんidを変数に入れてもOK Dim SearchBtn as String SearchBtn = "nav-search-submit-text" objIE.document.getElementById(SearchBtn).Click
classのサンプル(yahoo)
classはidと異なり、html内で重複する場合があります。
yahoo検索ボタンのhtmlサンプルです。※ 2020年6月30日現在
/*■yahooのhtmlコード(検索ボタン)class*/ <span class="PHOgFibMkQJ6zcDBLbga8"> 検索 </span>
yahoo検索ボタンはidは存在しませんが、
「class=”PHOgFibMkQJ6zcDBLbga8″」とclass属性が存在しています。
'■class要素をクリック objIE.document.getElementsByClassName(“PHOgFibMkQJ6zcDBLbga8”)(0).Click '■もちろんclassを変数に入れてもOK Dim SearchBtn as String SearchBtn = "PHOgFibMkQJ6zcDBLbga8" objIE.document.getElementsByClassName(SearchBtn)(0).Click
classはhtml内に重複して存在する可能性があります。
必ず添え字(今回であれば0)を入力して、html内のClassの位置の指定(上から〇番目)を指定する必要があります。
nameのサンプル
classと基本的には同様なので割愛します。
html内に下記のような「name=」で始まる要素を探して下さい。
<input type="image" src="/login_btn.gif" alt="ログイン" name="logIn">
その他
Internet Explorerを使用して、Webスクレイピングは敷居が高い風に捉えられますが、
上記のように、パーツ化して組み合わせ処理するだけです。
Web上のデータを触りたい要望は会社様でも個人様でも多いと思います。
VBA IE操作を覚えて効率化しませんか?
作成が大変であれば弊社で代行開発も可能です。お気軽にお問い合わせください。
コメント