access excel vba JSON形式 イミディエイトウィンドウで内容を確認



WebView2クラスでwebページを取得すると、
その内容はWebView2インスタンスが保持していて、

そこから要素、あるいは要素のコレクションを取得するときに、
Javascriptのコードを実行する、というやりかたになる。

その際、その要素をJSON.Stringify を使ったら、
Json形式になるので、

それをvbaで扱うには
JsonConverter.basが必要になってくるらしい。


------------------------------------------

accessのvbaでJSON形式のオブジェクトを
イミディエイトウィンドウで表示させて内容を確認するには
どのようなクラスを使ってコードを記述すればいいのでしょうか?

        ↓

AccessのVBAでJSON形式のオブジェクトを

イミディエイトウィンドウに表示するには、
`Scripting.Dictionary` を使ってJSONを作成し、
`JsonConverter` ライブラリを利用すると簡単に扱えます。

### 方法
1. **JSONを扱うためのライブラリを導入**
 
   AccessのVBAには標準でJSONを処理する機能がないため、
   [VBA-JSON]
   ( https://github.com/VBA-tools/VBA-JSON )
   (`JsonConverter.bas`)を使用するのが一般的です。  

   - GitHubから `JsonConverter.bas` をダウンロードし、
    VBAのモジュールに追加する。

2. **コードの記述**

   以下のコードで、JSONを解析(パース)して
   イミディエイトウィンドウに出力できます。

```vba

Sub ParseJSON()

    Dim jsonString As String
    Dim json As Object
    Dim key As Variant
    
    ' JSONデータ(例)
    jsonString
    = "{""name"": ""John"", ""age"": 30, ""city"": ""Tokyo""}"

    ' JSONをパース
    Set json = JsonConverter.ParseJson(jsonString)

    ' JSONの内容をイミディエイトウィンドウに表示
    For Each key In json.Keys
    
        Debug.Print key & ": " & json(key)
        
    Next key
    
End Sub

```

### 実行結果(イミディエイトウィンドウ)

```

name: John
age: 30
city: Tokyo

```


#### **JSONの作成と表示**

逆に、VBAのオブジェクト(Dictionary)を
JSON形式に変換して表示することも可能です。

```vba

Sub CreateJSON()

    Dim dict As Object
    Dim jsonString As String
    
    ' Dictionaryを作成
    Set dict = CreateObject("Scripting.Dictionary")
    dict.Add "name", "Alice"
    dict.Add "age", 25
    dict.Add "city", "Osaka"

    ' JSON形式に変換
    jsonString
    = JsonConverter.ConvertToJson(
                dict, Whitespace:=2)

    ' イミディエイトウィンドウに出力
    Debug.Print jsonString
End Sub

```


#### **実行結果**

```
{

  "name": "Alice",
  "age": 25,
  "city": "Osaka"
 
}

```

### **まとめ**

- JSONの解析(パース)には `JsonConverter.ParseJson()`

- VBAの `Scripting.Dictionary` を JSON に変換するには
    `JsonConverter.ConvertToJson()`

- イミディエイトウィンドウで `Debug.Print` を使って内容を確認


これでAccess VBAでもJSONを簡単に扱うことができます。




コメント