即時ウィンドウでコレクションやDictionaryの中身を確認する方法
VBAの 即時ウィンドウ は、配列やオブジェクトだけでなく Collection や Scripting.Dictionary の中身を確認するのにも使えます。大量データやキーと値のペアを扱うときにとても便利です。
1. Collection の中身を確認する
サンプルコード
Sub TestCollection()
Dim col As New Collection
col.Add "Apple"
col.Add "Banana"
col.Add "Cherry"
Stop ' ← 即時ウィンドウで確認
End Sub
VB即時ウィンドウで確認
? col.Count
VB→ 要素数を表示
? col.Item(1)
? col.Item(2)
VB→ 個別要素を表示
全要素を確認(コード側)
Dim item As Variant
For Each item In col
Debug.Print item
Next item
VB→ 即時ウィンドウに全要素が出力される
2. Dictionary の中身を確認する
サンプルコード
Sub TestDictionary()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "A", "Apple"
dict.Add "B", "Banana"
dict.Add "C", "Cherry"
Stop ' ← 即時ウィンドウで確認
End Sub
VB即時ウィンドウで確認
? dict.Count
? dict.Exists("B")
? dict.Item("B")
VB→ 要素数、キーの存在確認、値の取得
全キーと値を確認(コード側)
Dim key As Variant
For Each key In dict.Keys
Debug.Print key, dict(key)
Next key
VB→ 即時ウィンドウに「キーと値のペア」が一覧表示される
3. ウォッチ式と組み合わせる
- ウォッチ式に
col.Countやdict.Countを追加すると、実行中に要素数が変化するたびに監視できる dict("A")のように特定キーの値をウォッチしておくと、更新の瞬間に停止させることも可能
まとめ
- Collection →
Item(index)で要素を確認、For Eachで全体を出力 - Dictionary →
Item(key)で値を確認、Keysを使って全体を出力 - 即時ウィンドウでは
?を付けて値を表示、=で値を変更も可能 - ウォッチ式と組み合わせると「リアルタイム監視+条件付き停止」ができる
👉 このテクニックを使えば「コレクションやDictionaryの中身をその場で確認・変更」できるので、デバッグ効率が大幅にアップします。


