Excel VBAでウェブページの更新情報を監視する方法

この記事では、Excel VBAを使用してウェブページの更新情報や変更を自動で監視する方法について詳しく解説します。ウェブページの更新情報の監視は、情報収集や競合他社の動向を把握する際に非常に役立ちます。初心者向けに基本的なコードから、応用例までを具体的に解説しています。

目次

Excel VBAの基本

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

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

基本的な監視コード


Sub WebPageUpdateCheck()
    Dim ie As Object
    Dim html As Object
    Dim lastUpdate As String
    
    ' Internet Explorerを開く
    Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = False
    ie.navigate "http://example.com" '監視したいウェブページのURLを入力
    ' ページの読み込みを待つ
    Do While ie.Busy Or ie.readyState <> 4
        DoEvents
    Loop
    
    Set html = ie.document
    ' 更新日時情報を取得
    lastUpdate = html.getElementById("updateDate").innerText
    ' 最後の更新情報をExcelに書き込む
    ThisWorkbook.Sheets("Sheet1").Range("A1").Value = lastUpdate
    
    ' Internet Explorerを閉じる
    ie.Quit
    Set ie = Nothing
End Sub

このコードは、指定したウェブページの更新日時情報を取得して、ExcelのSheet1のA1セルに表示するものです。”updateDate”は、ウェブページ内の更新日時情報が格納されている要素のIDです。このIDはウェブページによって異なるため、対象のウェブページのソースコードを確認して、適切なIDやクラス名に置き換えてください。

応用例1: 複数のウェブページを監視する


Sub MultipleWebPagesUpdateCheck()
    ' (前略)
    Dim urls As Variant
    Dim i As Integer
    
    urls = Array("http://example1.com", "http://example2.com", "http://example3.com")
    For i = LBound(urls) To UBound(urls)
        ie.navigate urls(i)
        ' (中略)
        ThisWorkbook.Sheets("Sheet1").Cells(i + 1, 1).Value = lastUpdate
    Next i
    ' (後略)
End Sub

このコードは、複数のウェブページの更新情報を一度にチェックするものです。”urls”配列に監視したいウェブページのURLを列挙し、それぞれの更新情報をExcelのSheet1に順に表示します。

応用例2: 更新情報が変わったら通知する


Sub NotifyWhenUpdated()
    ' (前略)
    Dim previousUpdate As String
    previousUpdate = ThisWorkbook.Sheets("Sheet1").Range("A1").Value
    If lastUpdate <> previousUpdate Then
        MsgBox "ウェブページが更新されました!"
    End If
    ' (後略)
End Sub

この応用例は、ウェブページの更新情報が前回の情報と異なる場合に、メッセージボックスを表示して通知するものです。

応用例3: 特定のキーワードが含まれる場合に通知する


Sub NotifyWhenKeywordFound()
    ' (前略)
    Dim keyword As String
    keyword = "特売"
    If InStr(html.body.innerText, keyword) > 0 Then
        MsgBox keyword & "の情報がウェブページに追加されました!"
    End If
    ' (後略)
End Sub

この応用例は、ウェブページに特定のキーワード(この場合は”特売”)が含まれている場合に、メッセージボックスを表示して通知するものです。

まとめ

Excel VBAを使用してウェブページの更新情報を自動で監視する方法を学びました。基本的な監視方法から、複数のウェブページの監視、更新通知、キーワード通知まで、多岐にわたる応用例を取り上げました。この知識を活用して、情報収集や競合他社の動向把握をより効率的に行ってみてください。

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

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

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

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

コメント

コメントする

目次