Internet Explorer自動操作

VBAでIE操作「VBAでJS(JavaScript)のonclickをクリックする」【エクセルマクロ】

前回id要素がなくても、for eachで要素をチェックしてクリックする動作をお伝えしました。
上記で約半数のWebページは対応ができます。
では、対応が出来ない残りの半数は何でしょうか?JavaScriptを動作しているWebページです。

onclickは単純なクリックでは動かない

onclickはJavaScriptのイベントの一つです。「クリック」することでJavaScriptのイベントを発生させます。
その為、前回前々回のような単純にClickだけでは、
クリック処理は出来ても、JavaScriptが発火しない(イベントが発生しない)ため、ページ遷移ができません。

HTML(Javascript)のサンプル

下記のサンプルをみて、
onclickをどのように処理をすればよいのか、理解してください。

id要素が存在する場合

id要素のクリックでOKです。Javascriptは意識しなくてよいです。

 
<a id="addressLinkA" href="javascript:void(0);" style="color: rgb(0, 0, 255);>
   参照
</a>

onclick要素が存在する場合

下記VBAコードサンプルのように、JavaScriptを動かします。

 
//HTMLサンプル
<a href="javascript:void(0)" onclick="submit(0, '/Info', { 'ID': '1', 'Address': '東京都中央区' }); return false;">
   詳細
</a>
   '■「onclick="」と「; return false」の間の文字を使用する。
   temp = "submit(0, '/Info', { 'ID': '1', 'Address': '東京都中央区' });"

   '■Javascript:の文言を足し、ページ遷移(Navigate)する
   objIE.Navigate "JavaScript:" & temp

注意点

関連記事

 

その他

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

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

 

コメント

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