Collectionのキーは大文字小文字関係なし、TestとTESTが同じ扱い。
Dictionaryのキーは完全一致。TestとTESTは別物扱い。
以下、ざっくりとした使い方の違い。
Sub DictionaryTest() Dim dic As Object Set dic = CreateObject("Scripting.Dictionary") 'Dictionary Add(key, item) With dic .Add "苗字", "桃" .Add "名前", "太郎" .Add "住所", "静岡" .Add "年齢", 20 End With 'キーの存在を確認してから削除。 If dic.Exists("苗字") Then dic.Remove "苗字" End If 'キーと要素一覧表示。 Dim v For Each v In dic Debug.Print v & " : " & dic.Item(v) Next Debug.Print dic.Count & "個" Set dic = Nothing End Sub
Sub CollectionTest() Dim col As Collection Set col = New Collection 'Collection Add(item, key) With col .Add "桃", "苗字" .Add "太郎", "名前" .Add "静岡", "住所" .Add 20, "年齢" End With '追加した関数でキー存在確認してから削除。 If isExists(col, "住所") Then col.Remove "住所" End If '要素一覧表示。キーは出せません。 Dim var For Each var In col Debug.Print var Next Debug.Print col.Count & "個" Set col = Nothing End Sub 'Collectionにはキー存在確認の関数が無いので追加 Function isExists(c As Collection, key As String) As Boolean On Error GoTo err_1 Call c.Item(key) isExists = True Exit Function err_1: isExists = False End Function
以上。