連想配列を見やすくイミディエイトウィンドウに表示する
- yuji fukami
- 2024年12月29日
- 読了時間: 2分
<概要>
今回は連想配列を見やすくイミディエイトウィンドウに表示することができる汎用プロシージャの紹介です。
前回の記事で紹介した配列の中身を見やすくイミディエイトウィンドウに表示する汎用プロシージャ「DPA」と似たような汎用プロシージャになります。DPAと異なるのは、今回は表示する対象を連想配列(Dictionary型)としているところです。
Excel VBAで扱える連想配列のDictionary型の大きな欠点として、デバッグ中にローカルウィンドウではItemは中身が確認できても、Keyは中身が確認できない点です。これではデバッグ中にその連想配列の中身の全容が確認できないので不便となっています。
紹介する汎用プロシージャーの名前はDPD「DebugPrintDictionaryの略」と名付けていますが、こちらはDPAと同様にイミディエイトウィンドウで実行することで、連想配列の中身を見やすく表示するようになっています。
技術的な話を少ししておくと、連想配列のDictionary型は、その中身のKeyおよびItemはKeysプロパティおよびItemsプロパティで中身を配列として取得することができます。汎用プロシージャDPDではこの処理を利用して、 KeyおよびItemの中身を取得し、最後にDPAを利用してイミディエイトウィンドウに表示するようにしています。
<実行例>
実行例のサンプルコードは下記の通りとなっています。
実行にあたっては、参照設定において「Microsoft Scripting Runtime」ライブラリを参照するようにしてください。

実行すると、イミディエイトウィンドウに次のように連想配列の中身が表示されます。

サンプルコードでは、コードの途中でDPDを実行して、連想配列の中身を表示していますが、実際に使用する上ではデバッグで止まった状態でイミディエイトウィンドウで次のようにDPDを実行して連想配列の中身を確認するのが多いです。

<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。
<コード>
実際のコードは非常に長いものになるのでコピーして使用するのは大変と思います。ですので、標準モジュールとしてのインポート用のファイルも下に用意してますのでこちらをダウンロードおよび解凍してVBEにインポートしてみてください。インポートはクリック&ドラッグでも可能です。

コメント