水曜日の定時後から悩み続けて本日解決。
①パターン
Set js = CreateObject("ScriptControl")
js.Language = "JScript"
js.AddCode "function jsonParse(str) { return eval('(' + str + ')'); };"
Set json = js.codeobject.jsonParse(str)
②パターン
Set Parse = JSONConverter.ParseJson(JSON)
①また②をそれぞれ試してみた。
最終②で落ち着いた。
VBA-JSON v2.3.1 を利用
エラーになったのでコメント
Public Function ParseJson(ByVal JsonString As String) As Object
'Err.Raise 10001, "JSONConverter", json_ParseErrorMessage(JsonString, json_Index, "Expecting '{' or '['")
■VBAロジック
Option Explicit
Private Sub VBA_JSON_TEST()
Dim Parse As Object
Dim i As Long
Dim j As Long
Dim strJson As String
strJson = ""
For i = 1 To Worksheets(1).Range("A1").End(xlDown).Row
strJson = strJson & Worksheets(1).Cells(i, 1)
Next i
Set Parse = JsonConverter.ParseJson(strJson)
Debug.Print Parse("result")
Debug.Print Parse("jounal_frees")("jnl_free_code1")
For i = 1 To Parse("invdata").Count
Debug.Print Parse("invdata")(i)("inv_no")
For j = 1 To Parse("invdata")(i)("banks").Count
Debug.Print Parse("invdata")(i)("banks")(j)("depositor_name")
Next j
For j = 1 To Parse("invdata")(i)("details").Count
Debug.Print Parse("invdata")(i)("details")(j)("item_aut_amount_d")
Next j
Next i
Set Parse = Nothing
End Sub
■イミディエイトウィンドウ
ok
FREE01
INV111
振込先預金者1
振込先預金者2
1000
1100
1200
INV102
振込先預金者1
振込先預金者2
2000
2100
2200
■テストJSON