VBA開発

VBAでIE操作「IEで画像(alt・src)ボタンをクリックする」【エクセルマクロ】

IEで画像リンク(画像ボタン)をクリックしたいケースがあります。
ヤフオクのトップページを例に使用方法をお伝えします。

VBAでIE操作「IEでsubmitボタンをクリックする」【エクセルマクロ】と考え方は一緒です。
画像要素をチェックして、該当すればクリックします。
alt属性とsrc属性ではチェックする方法が異なります。

ALTが設定されていれば、.altをチェックしてクリック

alt属性が設定されていれば、objTag.altを確認します。

alt属性
画像の代替となるテキストを指定します。
何らかの理由で画像ファイルが表示されなければ、「文字」として表示します。

ヤフオクトップページのキャンペーンやウォッチリストの画像にはalt属性が設定されています。2020/07/06時点

//HTMLサンプル aタグにaltタグが設定されている画像ボタン
<div class="acMdCard">
 <a href="https://rdsig.yahoo.co.jp/auction/promo/gogo5/pc/top/bnr/RV=XXX" data-ylk="rsec:apr1;slk:5nohi;pos:1" data-rapid_p="25">
   <img src="https://s.yimg.jp/images/auct/salespromotion/2019_6/0615_gogo5/782_376.png" alt="GO!GO!入札!5のつく日キャンペーン" width="391" height="188">
 </a>
</div>

VBAでalt属性をクリック

下記VBAコードサンプルのように、for eachでaltタグが「GO!GO!入札!5のつく日キャンペーン」であれば、クリックします。

'■alt属性を利用してクリックする場合
For Each objTag In objIE.document.getElementsByTagName("a")
    '■TagがAのaltに「指定文字」が含まれていたら、
    If objTag.alt = "GO!GO!入札!5のつく日キャンペーン" Then
        '■■リンク画像クリック
        objTag.Click
        Exit For
    End If
Next

ALTがなければ、srcをチェックしてクリック

alt属性が設定されていれば、instr関数を利用しsrcの内容をチェックします。
上記ヤフオクのHTMLはalt属性がありましたが、
alt属性がないページの場合は、srcの内容をチェックしクリックしましょう。
(alt属性があってもこちらの方法でクリックする事もできますが、わざわざsrcでする必要性もないでしょう)

src属性
画像ボタンには、必ずsrc属性で画像ファイルが設定されています。

VBAでsrcをチェック

下記VBAコードサンプルのように、for eachでsrcが「指定URL」であれば、クリックします。

'■src属性をクリックする場合
For Each objTag In objIE.document.getElementsByTagName("a")
    '■Tagがaのhtml(outerhtml)内に「指定URL(指定文字)」が含まれていたら、
    If InStr(objTag.outerHTML, "0615_gogo5/782_376.png") &gt; 0 Then
        '■■画像ボタンクリック
        objTag.Click
        Exit For
    End If
Next

注意点

基本的にIE操作でクリックするのは以下の2パターンです。

その他

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

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

 

コメント

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