VBA開発

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

IEで掲示板や、問い合わせフォームなどのsubmitボタンをクリックしたいケースがあります。
id要素があれば、簡単にクリックができることは以前ご説明しました。

では、当方のお問い合わせページのような、submitを使う場合、
どのようにすればクリックできるでしょうか。

基本はfor eachで全ての要素をチェックする

VBAでIE操作「IEでid要素やName要素がなくてもボタンクリックをする」【エクセルマクロ】
考え方は一緒です。「submit」の要素をチェックしてクリックするだけです。
Class要素がなくてもTag要素で検索すればよいのです。

HTML(submit)のサンプル

 
//HTMLサンプル inputタグにsubmit
<input type="submit" value="送信" class="wpcf7-form-control wpcf7-submit">

VBAでsubmitをクリック

下記VBAコードサンプルのように、for eachで「送信」が含まれる文字を探して、クリックします。

'■submitをクリックする場合
For Each objTag In objIE.document.getElementsByTagName("input")
    '■Tagがinputのhtml(outerhtml)内に「送信」が含まれていたら、
    If InStr(objTag.outerHTML, "送信") > 0 Then
        '■■送信ボタンクリック
        objTag.Click
        Exit For
    End If
Next

注意点

では、タグって何なの?という方はVBAではなく、HTMLを少し勉強が必要ですね。
HTMLタグ一覧を参照して、目的のタグを探してください。

よく使うタグは以下。

inputインプット
tdテーブル
liリスト
aハイパーリンク
pページレイアウト

またfor eachでループするのは時間がかかりすぎたり、VBAがエラーを起こすのでは?と思われるかと思いますが、そこまで時間がかかるわけではなく、エラーが起きるのは違う要因がほとんどだと考えます。

 

その他

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

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

 

コメント

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