Excel VBAを活用することで、美術館やギャラリーサイトからの展示情報を自動的に取得するプログラムを作成することができます。この記事では、そのようなプログラムの基本的な作成方法と応用例を紹介します。
目次
Excel VBAを活用した展示情報の取得とその利点
Excel VBAを使用することで、手動でのデータ収集作業を自動化し、時間の節約や作業ミスの削減、大量の情報を効率よくまとめることが可能となります。
基本的なコードの構成
以下のコードは、美術館やギャラリーサイトから展示情報を取得するシンプルな例です。
Sub GetExhibitionInfo()
Dim IE As Object
Dim doc As Object
Dim element As Object
' Internet Explorerを開く
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
' 目的のウェブサイトにアクセス
IE.navigate "https://example-museum-website.com/exhibitions"
' サイトの読み込みが完了するまで待つ
Do While IE.Busy Or IE.readyState <> 4
DoEvents
Loop
Set doc = IE.document
' 展示情報の取得
Set element = doc.getElementById("exhibition-info")
Cells(1, 1).Value = element.innerText
' Internet Explorerを閉じる
IE.Quit
Set IE = Nothing
End Sub
このコードは、Internet Explorerを用いて指定したウェブサイトにアクセスし、展示情報をExcelのシートに転写するものです。
応用例
応用例1: 複数のサイトから情報取得
複数のサイトから情報を一括で取得する場合のコードです。
Sub GetMultipleSitesInfo()
Dim IE As Object
Dim doc As Object
Dim element As Object
Dim i As Integer
Dim urls() As String
urls = Array("https://site1.com/exhibitions", "https://site2.com/exhibitions")
' Internet Explorerを開く
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
For i = LBound(urls) To UBound(urls)
' 各サイトにアクセス
IE.navigate urls(i)
' サイトの読み込みが完了するまで待つ
Do While IE.Busy Or IE.readyState <> 4
DoEvents
Loop
Set doc = IE.document
' 展示情報の取得
Set element = doc.getElementById("exhibition-info")
Cells(i + 1, 1).Value = element.innerText
Next i
' Internet Explorerを閉じる
IE.Quit
Set IE = Nothing
End Sub
応用例2: 展示の画像もダウンロード
展示情報に加えて、画像もダウンロードするコードの例です。
Sub GetExhibitionInfoWithImage()
Dim IE As Object
Dim doc As Object
Dim imgElement As Object
Dim imgUrl As String
' Internet Explorerを開く
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
' 目的のウェブサイトにアクセス
IE.navigate "https://example-museum-website.com/exhibitions"
' サイトの読み込みが完了するまで待つ
Do While IE.Busy Or IE.readyState <> 4
DoEvents
Loop
Set doc = IE.document
' 展示情報の取得
Set imgElement = doc.getElementById("exhibition-image")
imgUrl = imgElement.src
' 画像のダウンロード
ThisWorkbook.FollowHyperlink imgUrl
' Internet Explorerを閉じる
IE.Quit
Set IE = Nothing
End Sub
応用例3: 取得した情報の自動整形
取得した展示情報をExcel内で自動的に整形するコードの例です。
Sub FormatExhibitionInfo()
Dim LastRow As Long
' 展示情報の最後の行を取得
LastRow = ThisWorkbook.Sheets("Sheet1").Cells(ThisWorkbook.Sheets("Sheet1").Rows.Count, "A").End(xlUp).Row
' データの整形
With ThisWorkbook.Sheets("Sheet1").Range("A1:A" & LastRow)
.Font.Name = "Arial"
.Font.Size = 12
.Columns("A:A").AutoFit
End With
End Sub
まとめ
Excel VBAを使って美術館やギャラリーサイトからの展示情報を自動取得することで、大量の情報も効率的にまとめることができます。基本的なコードから応用例まで、さまざまなシチュエーションでの使用法を学んで、自分のニーズに合わせてカスタマイズしてみましょう。
コメント