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を簡単に扱うことができます。
コメント
コメントを投稿