VBAの基本のデータ型はいまいち使いにくいですが、
平たくいうと、RubyでいうHashのようなものです。
順不同のデータを気軽にストックしておきたい場合に使います。
コード
Sub test_collection()
Dim c As Collection
Set c = New Collection
c.Add 100, "a"
c.Add 50
c.Add item:=80, key:="p"
Debug.Print "c(""a"") = " & c("a") '=> 100
Debug.Print "c(2) = " & c(2) '=> 50
Debug.Print "c(""p"") = " & c("p") '=> 80
Debug.Print "c(3) = " & c(3) '=> 80
c.Add item:=40, key:="p" ' run-time error End Sub
CollectionクラスのAddメソッドは、
第2引数を指定すると、
それをキーにすることができます。
Add item:=value, key:=k
と書くこともできます。
同じキーでAddするとランタイムエラーになるのでご注意
ただし、すでに割り当てられているキーをAddしようとするとエラーになります。実行時エラー'457':
このキーは既にこのコレクションの要素に割り当てられています。

