VBA開発

VBAでIE操作「IEでボタンクリックをする id/Name/Class」【エクセルマクロ】

VBAでIE操作(InternetExplorer操作)

ExcelVBAマクロでIEを操作し、Webスクレイピング、Webクローリングをする事が可能です。
マクロがインターネットエクスプローラーを自動で操作し、
WEBのデータ取得・登録などの、各種WEB操作します。

具体的には以下が可能です。
・IEから取得したデータをシートに書込。
・エクセルデータを、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サンプルです。

/*■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サンプルです。

/*■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の位置の指定(上から〇番目)を指定する必要があります。

注意
添え字は必ず0スタートです。html内で指定したclassが1番目の場合、添え字で0を指定します。

nameのサンプル

classと基本的には同様なので割愛します。
html内に下記のような「name=」で始まる要素を探して下さい。

<input type="image" src="/login_btn.gif" alt="ログイン" name="logIn">

その他

Internet Explorerを使用して、Webスクレイピングは敷居が高い風に捉えられますが、
上記のように、パーツ化して組み合わせ処理するだけです。

Web上のデータを触りたい要望は会社様でも個人様でも多いと思います。
VBA IE操作を覚えて効率化しませんか?
作成が大変であれば弊社で代行開発も可能です。お気軽にお問い合わせください。

 

コメント

タイトルとURLをコピーしました