【VBA】コレクションの基本的な使い方

今回はVBAでコレクションを使う方法を紹介します。
コレクションは辞書型(Dictionary)のようにkeyと紐づける方法も、配列のようにインデックスと紐づける方法も使えます。
慣れるととても便利なオブジェクトなのでぜひ活用してみてください。
コレクションを作成する方法
Sub Sample()
'空のコレクションを作成
Dim col As Collection
Set col = New Collection
End Sub
VBAでコレクションを使うには、まず、Collectionクラスを使用してコレクションを作成する必要があります。
サンプルコードのようにして、空のコレクションを作成できます。
コレクションに要素を追加する
Sub SampleAdd()
'空のコレクションを作成
Dim col As Collection
Set col = New Collection
'コレクションに要素を追加
col.Add "item", "key"
End Sub
コレクションに要素を追加するにはAddメソッドを使います。
itemはコレクションに追加する要素(中身)です。サンプルコードでは文字列を入れていますが、オブジェクトや配列なども入れることができます。
keyはオブジェクトを識別するための文字列です。keyを省略することもできます。
コレクションの要素数を調べる
Sub SampleCount()
'空のコレクションを作成
Dim col As Collection
Set col = New Collection
'コレクションに要素を追加
col.Add "item", "key"
'コレクションの要素数を調べる
Debug.Print col.Count
End Sub
コレクションの要素数を確認するにはCountプロパティを使います。
コレクションから要素を取り出す
Sub SampleItem()
'空のコレクションを作成
Dim col As Collection
Set col = New Collection
'コレクションに要素を追加
col.Add "Item", "Key"
'コレクションの要素数を調べる
Debug.Print col.Count
'コレクションから要素を取り出す
Debug.Print col.Item("key") 'keyで取り出す
Debug.Print col.Item(1) 'インデックスで取り出す
End Sub
コレクションに要素を取り出すにはItemメソッドを使います。
取り出しは辞書型(Dictionary)のようにkeyで取り出すこともできますし、配列のようにインデックスで取り出すこともできます。
コレクションから要素を削除する
Sub SampleRemove()
'空のコレクションを作成
Dim col As Collection
Set col = New Collection
'コレクションに要素を追加
col.Add "Item", "Key"
'コレクションの要素数を調べる
Debug.Print col.Count
'コレクションから要素を取り出す
Debug.Print col.Item("key") 'keyで取り出す
Debug.Print col.Item(1) 'インデックスで取り出す
'コレクションから要素を削除する
col.Remove "key" 'keyで指定
' col.Remove 1 'インデックスで指定
End Sub
コレクションから要素を削除するにはRemoveメソッドを使います。
削除も辞書型(Dictionary)のようにkeyで指定することもできますし、配列のようにインデックスで指定することもできます。(要素が1つだけのためサンプルコードではインデックス指定をコメントアウトしています)