Internet Explorer自動操作

VBAでIE操作「IEのフレーム内のリンクをクリックする」【エクセルマクロ】

IEでフレーム(frame)内のリンクをクリックしたいケースがあります。
フレームでは親ページと子ページに分かれます。
子ページの名称を付与して処理するだけで、基本は下記のハイパーリンクをクリックする時と同一です。
VBAでIE操作「IEでaタグ(ハイパーリンク)をクリックする」【エクセルマクロ】

フレームページのサンプル

 //フレームHTMLサンプル 
<html>
  <head>
    <title>サンプル親ページ</title>
    <meta http-equiv="content-type" charset="utf-8">
  </head>
  <frameset cols="50%,*" rows="*">
    <frame src="01index.html" name="index">
    <frame src="02menu.html" name="menu"> 
  </frameset>
  <body>
  </body>
</html>

VBAでフレーム内のタグをクリック

下記VBAコードサンプルのように、for eachで「送信」が含まれる文字を探して、クリックします。
通常のハイパーリンクとの違いは objFrame("menu") とフレーム内の子要素を指定した上で探します。

    '■フレームの情報取得
    Set objFrame = objIE.document.frames
    For Each objInput In objFrame("menu").document.getElementsByTagName("input")
        '■■inputタグに送信が含まれる場合にクリック処理
        If InStr(objTag.innerText, "送信") > 0 Then
              objInput.Click
              Call Call_IE_WaitTime
              Exit For
        End If
    Next objInput

Call_IE_WaitTimeは下記記事参照。
VBAでIE操作「ブラウザの読込待ち」処理をパーツ化する【エクセルマクロ】

その他

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

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

 

コメント

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