VBA開発

VBAでIE操作「ページ内のリンクURLを全て取得」

Internet Explorerの現在のページ内のリンクURLを全て取得

Excel VBAマクロでIEを自動操作する際、タイトルやURLを取得したいケースがあります。

  • 検索結果のリンクURLを、一覧形式で保存したい。
  • 特定のHPのリンク先を、エクセル保存したい。

Linkデータからhref情報(URLリンク情報)を、for eachで取得するだけです。

IEページ内のリンクURLを全て取得するコード

'■InternetExplorerで表示中のページ内にあるリンクを全て取得
Sub sample_IE_get_url_href()
 
    Dim objIE As InternetExplorer
    Dim LinkURL As HTMLAnchorElement
    
    '■IEを起動
    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Visible = True
 
    '■指定したURLに飛び、Webサイトの表示を待つ
    objIE.navigate "https://vba-create.jp/"
    Call Call_IE_WaitTime
 
    '■現在表示しているWebページ内の「リンク」を表示
    For Each LinkURL In objIE.document.Links
        MsgBox LinkURL.href
        MsgBox LinkURL.innerText '文字リンク内であれば、リンクの文字が取得可能
    Next LinkURL
    
End Sub

注意点

上記のサンプルコードはWebページの内のURLリンクを取得しています。
(Googleなど検索サイトでの検索結果を入れる)
現在のページ情報などを取得したい場合は以下参照。

その他

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

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

 

コメント

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