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
注意点
- こちらのコードだけでは動作しません。
下記の読み込み待ちのパーツ化したコードが必要です。
VBAでIE操作「ブラウザの読込待ち」処理をパーツ化する【エクセルマクロ】
上記のサンプルコードはWebページの内のURLリンクを取得しています。
(Googleなど検索サイトでの検索結果を入れる)
現在のページ情報などを取得したい場合は以下参照。
現在のページ情報などを取得したい場合は以下参照。



コメント