VBA(JSONファイル読込)

 

https://qiita.com/towakey/items/2285e13e40d0879a995b


-- 1. 開発タブの挿入でボタンを作成
ActiveXコントロールのものを使用する

-- 2. デザインモードONで作成したボタンをダブルクリックするとエディタが開くので下記コードを記載。デザインモードOFFで実行

※ 下記設定必要
Microsoft Scripting Runtime」の参照設定
VBA-JSONのインポート


Option Explicit


Private Sub CommandButton1_Click()


    
    ' 画面を更新しない
    Application.ScreenUpdating = False
    ' 確認メッセージを表示しない
    Application.DisplayAlerts = False
    
    
    
    'テスト用JSONファイル作成
    
    Open ThisWorkbook.Path & "\a.json" For Output As #1
        
        Print #1, "["
        Print #1, "    {"
        Print #1, "        ""instanceid"": ""i-22222222222222222"","
        Print #1, "        ""Tags"": ""work2"""
        Print #1, "    },"
        Print #1, "    {"
        Print #1, "        ""instanceid"": ""i-33333333333333333"","
        Print #1, "        ""Tags"": ""work3"""
        Print #1, "    },"
        Print #1, "    {"
        Print #1, "        ""instanceid"": ""i-11111111111111111"","
        Print #1, "        ""Tags"": ""work1"""
        Print #1, "    }"
        Print #1, "]"
    
    
    Close #1
    
    
    Dim buf As String
    With CreateObject("ADODB.Stream")
        .Charset = "Shift-JIS"
        .Open
        .LoadFromFile ThisWorkbook.Path & "\a.json"
        buf = .ReadText
        .Close
    End With
    
    Debug.Print (buf)
    
    Dim jsonObj As Object
    
    ' JSONパース
    Set jsonObj = JsonConverter.ParseJson(buf)
    
    Dim j As Variant
    
    For Each j In jsonObj
        Debug.Print j("instanceid")
        Debug.Print j("Tags")
    Next
    
    
    MsgBox ("処理完了")
    
    
    ' 確認メッセージを表示する
    Application.DisplayAlerts = True
    ' 画面を更新する
    Application.ScreenUpdating = True


End Sub