2011年1月17日月曜日

VBAでJSON形式ファイルを扱う。

VBAで直接JSONファイルを扱う場合は、MSScriptControl.Scriptcontrolを
使うと比較的簡単に使える。
'//オブジェクト生成
Set sc = CreateObject("ScriptControl")

'//言語の設定
sc.Language = "JScript"

'//jsonをパースする為の関数
strFunc = "function jsonParse(s) { return eval('(' + s + ')'); }"
'//関数を追加
sc.AddCode strFunc

ここまで準備できたら、
'//関数を実行して
Set objJSON = sc.CodeObject.jsonParse("JSON形式のData")


例えば、JSON形式が単純な場合
JSON形式のData
{"familyname":"yamada","personalname":"tarou"}
だと
objJSON.familyname で yamada
objJSON.personalname で tarou
が取得できる

JSON形式データが配列の場合
{"person":["yamada","tarou","age20","male"]}
だと
objJSON.person[0] では値"yamada"を取れなかったので

Dim vItem As Variant '//バリアント型で変数を用意して
For Each vItem In objJSON.person '//ループ処理で、1つずつ値を取得してみた。

他にいい方法があれば、また書きます><


Ajaxなどで、http経由で取得したい場合は、また別で。。。

0 件のコメント:

コメントを投稿