ms access_html_パース_スクレイピング_ライブラリ

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解析の自動化に利用できます!


コメント