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':
このキーは既にこのコレクションの要素に割り当てられています。