ゴリラストロングの雑記帳

月収10万円の広告収入を目指す自称専業ライターのブログです。




【VBA】特定のウェブサイト内の全てのリンクにアクセスするマクロを作成してみました。




どうも、ゴリラストロングです。

 

今回はVBAで、特定のウェブサイト内の全てのリンクにアクセスするマクロを作成してみました。

 

<概要>

【VBA】特定のウェブサイト内の全てのリンクにアクセスするマクロ

VBA】特定のウェブサイト内の全てのリンクにアクセスするマクロ

 

ソースコード

Sub 特定のウェブサイト内の全てのリンクにアクセスするマクロ()

Dim URL1 As String
URL1 = ActiveWorkbook.Worksheets(1).Range("B1")

Dim objIE As InternetExplorer
Set objIE = New InternetExplorer

objIE.Visible = True
objIE.Navigate URL1

Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE
DoEvents
Loop
    
Dim ws As Object
Set ws = ActiveWorkbook.Worksheets(1)
    
ws.Range("A3") = objIE.document.all(0).outerHTML

Dim htmlDoc As HTMLDocument
Set htmlDoc = objIE.document

Dim i As Long
i = 3

Dim anchor As HTMLAnchorElement

For Each anchor In htmlDoc.Links

ws.Range("B" & i) = anchor.href
i = i + 1

Next anchor

Dim lastrow As Long
lastrow = ws.Cells(Rows.Count, 2).End(xlUp).Row

Dim URL As String, IE As Object

For j = 3 To lastrow

Set IE = CreateObject("InternetExplorer.Application")

URL = ws.Range("B" & j)

With IE
.Navigate (URL)
.Visible = True
End With

Set IE = Nothing

Next

End Sub

 

このマクロを使うと題名の通り、特定のウェブサイトの中の全てのリンクに自動でアクセスします。

 

※もしリンクがたくさんあるページで使うとウインドウがたくさん開かれてしまい
 大変かもしれません。

 

※このマクロを動かすには、VBEの参照設定を変更する必要があります。
 ①VBAのコード編集画面(VBE)を表示させます。(ショートカットAlt+F11)
 ②「メニュー」→「ツール」→「参照設定」を選択します。
 ③「Microsoft HTML Object Library」「Microsoft Internet Controls」にチェックを
  入れます。
 ④「OK」をクリックして完了です。

 

 

以上、ゴリラストロングでした。