基本的にScripting.Dictionaryは、
Dim dic As Object Set dic = CreateObject("Scripting.Dictionary") If Not dic.Exists(a) Then dic.Add a,b End If
みたいに、Existsメソッドを利用することが多いのだが、
やはり1つずつ確認して処理を行うこともなくはない。
Dim i As Long For i = 0 To dic.Count - 1 Step 1 debug.print dic.Keys()(i) & "-" & dic.Item(i) Next i
もしくは、
Dim v As Variant For Each v In dic.Keys() debug.print CStr(v) & "-" & dic(v) Next
で、いずれも、Keys() と両括弧を付けるところがポイント。
色々サイトを見てみたのだが、この()が抜けていたり、ItemがItemsになっていたりして、混乱している記載が多く、ここまでたどり着くのに英語のサイトまで見に行ってしまった。
非常にやっかいだが、もともとこういう使い方するようなオブジェクトではないのだろうから、仕方ない。
ちなみに削除するときはRemoveを使う。(Deleteではない)
Dim v As Variant For Each v In dic.Keys() dic.Remove v Next