スポンサーリンク

【動画あり】IEの要素のID,TagName,Nameを知る方法~VBA(マクロ)でIE操作

IE関係
この記事は約5分で読めます。
スポンサーリンク

IEの要素のID,TagName,Nameを知る方法

特定したい要素の属性が分かれば、
getElementで取り出すことができることが分かりましたので、
要素の属性を確認方法を説明していきたいと思います。

右クリック→要素の検査

一番簡単なのが、知りたい要素の上で右クリック→要素の検査を使うことです。

YAHOOの検索ボックスを確認してみましょう。
検索ボックスの上で右クリックを押すと下記のように、要素の検査と出ると思います。
ここをクリックしてください。

すると、下図のような開発者ツールが起動し、
その要素がハイライトされた htmlコード表示されると思います。
ここを確認することで、要素の属性を知ることができます。
今回の場合、TagName=”input”、name=”p”、id=”srchtxt”であることが分かりました。

↓↓動画で紹介しています。

また、開発者ツールは[F12]を押すことで立ち上げることができ、
この画面上で[ctrl+B]を押すことで要素の検索モードに入ることができます。
すると下図のように選択範囲がハイライトされ、その状態でクリックすることで、
先ほどと同じように、htmlの中身を見ることができます。
この結果検索ボタンはID=”srchbtn”であることが分かりました。
↓↓動画で紹介しています。

知りたい要素がたくさんあるとき

上記の方法だとテキストボックスなどを検索することはできますが、
知りたい要素がたくさんあり、その情報をすべて抜き出すときには適しておりません。
今回その一例として、楽天証券の表の内容を書き出すプログラムを作成してみました。

楽天証券の表の内容を書き出す

楽天証券の表を書き出すためのコードになります。簡単に説明すると、
①サイトを立ち上げて
tagName=”tr”を検索 (”tr”は「行」を表します。)
.chirdrenを用いてtrの中の子要素の「列」を取得、書き出し。
 ※何個列があるかわからないので、とりあえず20まで取得。
  エラーが起こらないようにOn Error Resume Next入れてます。
という内容です。

 Application.ScreenUpdating = False
     
'IEの起動
Dim objIE As Object
     
Set objIE = GetObject("", "InternetExplorer.Application")
     
objIE.Visible = True
         
         
    objIE.Navigate "https://www.rakuten-sec.co.jp/web/fund/find/search/result.html"  ' このURLを任意に変更
         
    ' ページの表示完了待ち。
    While objIE.ReadyState <> 4 Or objIE.Busy = True
        DoEvents
    Wend
     
    On Error Resume Next      '値がないとエラーが出るので、エラー回避用
    
    I = 1  '開始行を指定
    L = 0
    J = objIE.document.all.Length  '要素の数を知る
        
    Cells(I, 1).Value = "No"
              
    Dim B As Object
         
    For Each B In objIE.document.getElementsByTagName("tr")
    
        For L = 0 To 20
    
            Cells(I, L + 1) = B.Children(L).innertext
           
        Next
        
        I = I + 1
        
            
        'ステータスバーに進捗を表示
        Application.StatusBar = I & "/" & J
         
    Next
        
    On Error GoTo 0
  
    Cells.WrapText = False
    
    
Application.ScreenUpdating = True
Application.StatusBar = False

     
     
End Sub

chirdrenに関しては別の記事でご紹介いたしますが、
上記のプログラムを実行すると楽天証券の下記の表を、
エクセルに書き出すことができたと思います。
このように大量のデータを抜き出したいときや、そのIDや名前などを探してられないときなどは、
for each構文を使って抜き出すといいと思います。

↓エクセルに書き出される

記事のまとめ

この記事のまとめは下記のとおりです。

・要素の検索は右クリック「要素の検査」か、[F12]→[ctrl+B]で検索すること。
・大量のデータを抜き出すときなどは、for each構文を使って抜き出すと〇。

また、要素を全て抜き出すためのコードも公開していますのでご覧ください↓

【簡単】VBAでIEの全要素のデータを取得する方法~VBA(マクロ)でIE操作
↓のサイトで、IEを表示することができました。次は、HTMLの中身を確認し、任意の情報を取り出す方法を書いていこうと思います。VBAでIEの全要素のデータを取得する方法マクロでIEを操作して行いたいことは、①サイト...

コメント欄

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