vba/vbscriptでJSONをパースするにScriptControlを使っていたが、64bit環境だとScriptControlが使えないから困る。何か代わりはないかと思ってた所、最初はIEが使えることに気づき、でもその後に"HtmlFile"なるものが使えるということを知った。
※Windows10 64bit/Excel2016 64bitで確認
vbscript
Dim doc, jsn
'HTMLDocumentを取得
Set doc = CreateObject("HtmlFile")
'JSONオブジェクトを使うにはIEの互換表示で8以上(edgeも可)にする。
doc.write "<meta http-equiv='X-UA-Compatible' content='IE=8' />"
'scriptタグを追加
'パースはJSON.parseを使うとチェックが厳しいのでevalを使う。
doc.write "<script>document.JsonParse=function (s) {return eval('(' + s + ')');}</script>"
doc.write "<script>document.JsonStringify=JSON.stringify;</script>"
'パース関数でJSONオブジェクトを取得
Set jsn = doc.JsonParse("{a:1,b:2}")
'パース後の値を確認
WScript.Echo jsn.b
'Jsonオブジェクトを文字列に変換
WScript.Echo doc.JsonStringify(jsn)
※vbaの場合は上記のWScript.EchoのとこをMsgBoxにでもして関数化すれば確認できる。