Excel VBAで
リモートサーバーから出力されるHTMLをパースする際には
**Microsoft HTML Object Library**
がよく使われるそうですが,
このライブラリは accessからでも使えるのでしょうか?
↓
はい、**Microsoft HTML Object Library** は
**Access VBA** でも利用できます。
### 利用方法:
1. **参照設定を追加する**
- AccessのVBAエディタを開く (`ALT` + `F11`)
- 「ツール」→「参照設定」を開く
- **「Microsoft HTML Object Library」** にチェックを入れる
2. **オブジェクトを使ってHTMLを解析**
- `HTMLDocument` オブジェクトを使い、HTMLの要素を取得・操作できます。
### 簡単なコード例:
AccessのVBAで `Microsoft HTML Object Library` を利用し、
HTMLを解析するサンプルコードです。
```vba
Sub ParseHTMLFromServer()
Dim objHTTP As Object
Dim objHTML As New HTMLDocument
Dim objElement As Object
' HTTPリクエストを送信(例: Googleのトップページを取得)
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
objHTTP.Open "GET", "https://www.google.com", False
objHTTP.Send
' HTMLをパース
objHTML.body.innerHTML = objHTTP.responseText
' 例: タイトルタグを取得
Debug.Print objHTML
.getElementsByTagName("title")(0).innerText
' 例: aタグの一覧を取得
For Each objElement
In objHTML.getElementsByTagName("a")
Debug.Print objElement.href
Next
' 後始末
Set objHTML = Nothing
Set objHTTP = Nothing
End Sub
```
### ポイント:
- `MSXML2.XMLHTTP` を使ってリモートサーバーからHTMLを取得
- `HTMLDocument` オブジェクトを用いてHTMLを解析
- `getElementsByTagName()` を使ってタグごとの情報を取得
Access VBA でもExcel VBAと同じ方法で
`Microsoft HTML Object Library` を活用できるので、
データスクレイピングやHTML解析の自動化に利用できます!
コメント
コメントを投稿