リンクへ飛ぶ方法 | カメレオンのVBA

カメレオンのVBA

VBAの私的メモ書き


基本的な流れは・・・
 ①ieのDocumentからクリックしたいHtmlエレメントオブジェクトを探し出して
 ②clickする
となる。
その際に使うコードの例をあげると次の通り
  id  → getElementById
  name → getElementsByName


<サンプル>
    '~~~準備
    Dim htdoc As HTMLDocument 'HTML文書全体を宣言する
  Set htdoc = ie.document

    '1:ボタンの名称からリンクへ
        'img(ボタン名)が「xxx」である
        '(HTMLでは[IMG alt=xxx]にて表記している)
    Dim img1 As HTMLImg  'HTMLのイメージを宣言
   
    For Each img1 In htdoc.getElementsByTagName("IMG")
        If InStr(img1.alt, "xxx") > 0 Then
            img1.Click  'クリックする
            Exit For    'ループから抜ける
        End If
    Next


    '2:属性から
    '2-1 タグの属性がIMG で クラスの名前は ○○○

    Dim img2 As HTMLImg  'HTMLのイメージを宣言
   
    For Each img2 In htdoc.getElementsByTagName("IMG")
        If InStr(img2.className, "○○○") > 0 Then
            img2.Click  'クリックする
            Exit For   'ループから抜ける
        End If
    Next


    '2-2 タグの属性がa herf で ボタンの名前は □□□
    Dim myHTML1 As HTMLAnchorElement  'ハイパーリンクを指定する[a herf]タグを用いた場合
   
    For Each myHTML1 In htdoc.getElementsByTagName("A")  '[a herf]タグを用いた場合
        If InStr(myHTML1.className, "□□□") > 0 Then
            myHTML1.Click  'クリックする
            Exit For   'ループから抜ける
        End If
    Next


    '2-3 タグの属性がSPAN で その属性の値は △△△
    Dim myHTML2 As HTMLSpanElement
   
    For Each myHTML2 In htdoc.getElementsByTagName("SPAN")
        If myHTML2.innerText = "△△△" Then
            myHTML2.Click  'クリックする
            Exit For   'ループから抜ける
        End If
    Next