VBA-JSONをWordに導入

これまで、CATOVIS LSからWord VBAへのレスポンスは、VBAでも簡単に読めるよう、
[&][;] といった特殊な記号で文字列の区切りを作っていました。

しかし、情報量が膨らむにつれてだんだんと無理が生じてきていました。

JSON文字列を使えれば楽なのですが、VBAでは読み込めないし……と思っていたところで、見つけました!

VBAのJSONパーサー、その名も「VBA-JSON」です。

Githubからダウンロードして、Readmeにあるとおりインポートしたところ……
「Newキーワードの使用法が不正です」と、エラーが出ました。

”Dictionary”がおかしいとのことですが、Readmeの指示どおり
参照設定で”Microsoft Scripting Runtime”のチェックを入れているのですが……

そこでDictionaryの使い方を復習しようとしたところ、

Dictionaryが二つ提示されているのに気が付きました

オブジェクトライブラリを見ていくと、WordにもDictionaryオブジェクトがある模様。
(カスタム辞書というもの)

Word VBAで動かしていたので、WordのDictionaryが優先されて呼び出されていたのですね。

そこで、”Microsoft Scripting Runtime”のほうのDictionaryが呼び出されるよう、ソースの一部を修正します。


Private Function json_ParseObject(json_String As String, ByRef json_Index As Long) As Scripting.Dictionary
    Dim json_Key As String
    Dim json_NextChar As String

    Set json_ParseObject = New Scripting.Dictionary

上記のように”Dictionary”を”Scripting.Dictionary”に変更します。

これで無事、エラーなくパースすることができました。

これから少しずつ、CATOVIS LSのレスポンスを書き換えていこうと思います。

CATOVIS LS

MS Office Wordと接続。軽量型でWYSIWYGを実現