[[20220916172358]] 『Jsonデータをセルに出力』(初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Jsonデータをセルに出力』(初心者)

{"": "","東京": "AKB","名古屋": "SKE","大阪": "NMB","博多": "HKT","新潟": "NGT"}

上記のようなJsonデータの値のみを指定のセルに出力するマクロの書き方を教えていただきたいです。
自分なりにネットで調べてみたのですが、全然理解できず…。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 「json vba 読み込み」でググったら結構色々引っ掛かりますね。

VBA-JSONのインストール方法と簡単な使い方使い方
https://javeo.jp/vba-json/

(白茶) 2022/09/16(金) 18:15


 すでにご指摘いただいたとおりです。

 その文字列がA1にあるとして、
 キーをB列に
 itemをC列に
 取り出すコード例は以下のとおりです。
 参考にしてください。

 Rem VBA-JSONのインストール
 Rem Microsoft Scripting Runtime の参照設定が必要
 Sub test()
     Dim s    As String
     Dim res  As Variant
     Dim v    As Variant
     Dim keys As Variant

     s = [A1].Value
     Set res = ParseJson(s)

     keys = res.keys
     v = res.Items
     [B1].Resize(res.Count, 1) = Application.Transpose(keys)
     [C1].Resize(res.Count, 1) = Application.Transpose(v)
     Stop
 End Sub

 コンバータはこれがデファクトスタンダードですね。
 なお、この例に限れば、Split等を使って取り出すことは可能ですが、
 もっと複雑なJsonデータがあるとすれば、ライブラリーを使うことを推奨します。
  
(γ) 2022/09/16(金) 19:12

A1セルにある、という前提は回答上の便宜であって、そのこと自体が要件ではありません。
要するに文字列をs という変数にセットすればよいので、臨機応変に対応ください。
  
(γ) 2022/09/16(金) 19:18

 遅ればせながら若干の追加です。

 VBA-JSONによる、Parseの結果は、
 ・配列
 ・Dictinary(連想配列)
 を使ったもので返されます。(それらを入れ子にしたものになることが多いようです)

 提示されたデータについて説明しますと(これは、比較的シンプルなものです)、
 key        Item
 =======    =======
 ""         ""
 "東京"     "AKB"
 "名古屋"   "SKE"
 "大阪"     "NMB"
 といったkeyとItemのペアを管理したDictionaryが
 Set res = ParseJson(s)
 で返される res というデータの中身です。

 JSONデータを取り扱うには、
 まず、「配列」とか、「Dictionary」といったデータ構造を知る必要があります。
 ご存じでなければ、その2つを学習してください。
 ここではすべてを説明するわけにいきませんので、
 ご自分で検索するなり、手元の書籍等で調べてみて下さい。
   
(γ) 2022/09/17(土) 23:20

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.