Excel VBAでウェブサイトから連絡先情報を抽出する方法

この記事では、Excel VBAを使用してウェブサイトから連絡先情報を抽出する方法について詳しく説明します。具体的なコード例、その詳細な解説、および応用例を含めてご紹介します。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

Excel VBAを使ったウェブ情報の抽出とは

VBA(Visual Basic for Applications)は、ExcelをはじめとするMicrosoft Office製品で動作するプログラム言語です。ウェブサイトから情報を抽出するスクレイピングと組み合わせることで、繁雑な作業を自動化することができます。

Webスクレイピングの基本

Webスクレイピングは、ウェブページから情報を抽出する手法です。Excel VBAを用いることで、特定のウェブサイトから必要な情報、例えば連絡先情報などを効率的に収集することが可能です。


Sub WebScraper()
    Dim ie As Object
    Dim html As Object
    Dim i As Integer
    Dim contactInfo As String

    ' Internet Explorerを開く
    Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = False

    ' ウェブサイトを開く
    ie.Navigate "https://example.com/contact"

    ' ページの読み込みが完了するまで待機
    Do While ie.Busy
        Application.Wait DateAdd("s", 1, Now)
    Loop

    Set html = ie.document

    ' 連絡先情報を抽出
    contactInfo = html.getElementById("contactInfo").innerText
    Sheets("Sheet1").Cells(1, 1).Value = contactInfo

    ' Internet Explorerを閉じる
    ie.Quit
End Sub

コードの詳細解説

1. `InternetExplorer.Application`を使用してInternet Explorerを起動します。
2. `ie.navigate`メソッドで指定したURLに移動します。
3. ページの読み込みが完了するまで待機します。
4. `html.getElementById`メソッドを使って、ページ内の特定の要素(ここでは”contactInfo”のIDを持つ要素)のテキストを抽出します。
5. 抽出した情報をExcelシートに書き込みます。
6. 最後にInternet Explorerを閉じます。

応用例

1. 複数のウェブページからの情報抽出

特定のウェブサイト内の複数ページから情報をまとめて抽出したい場合があります。


' 複数ページのURLリスト
Dim urls(1 To 3) As String
urls(1) = "https://example.com/contact1"
urls(2) = "https://example.com/contact2"
urls(3) = "https://example.com/contact3"

For i = 1 To 3
    ' 各ページから情報を抽出するコード
Next i

2. 特定のキーワードに基づく情報の抽出

ページ内に特定のキーワードが存在する場合のみ情報を抽出します。


If InStr(1, html.body.innerText, "特定のキーワード", vbTextCompare) > 0 Then
    ' キーワードが存在する場合のみ情報を抽出
End If

3. 画像やPDFなどのファイルの自動ダウンロード

ページ内の特定のリンクを使用して、関連ファイルを自動的にダウンロードします。


Dim downloadLink As String
downloadLink = html.getElementById("downloadLink").href
If downloadLink <> "" Then
    ' ダウンロードリンクが存在する場合、そのリンクを開く
    ie.navigate downloadLink
End If

まとめ

Excel VBAを活用することで、ウェブサイトからの情報抽出が容易になります。本記事で紹介した基本的な方法や応用例を参考に、効率的なデータ収集を実現してください。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次