Digital_Neko

フリーランスプログラマー

ExcelVBA コレクションを使ってみよう

今回はコレクションの説明です。コレクションを使うと関連するアイテムを
グループ化できます。またデータ型は同じにする必要はありません。
早速ですが、Collectionを利用したプログラムは図1になります。

図1 Collectionの利用

まずコレクションを利用するには、Collection型の変数を宣言し、インスタンスを
生成します。コレクションにアイテムを追加するにはAddメソッドを利用します。
Addした順番にアイテムが入っていきます。

またCountプロパティを使うと、アイテム数を返してくれます。今回はcol.Countと
してメッセージボックス関数でアイテム数を表示しています。

Itemメソッドは Item(index番号)でアイテムを指定して取り出すことができます。
今回は col.Item(3) で「イヌ」を取り出しています。

Removeメソッドはアイテムを削除します。col.Remove(1)として1番目のアイテム
を削除しています。またAddメソッドは
object.Add item , key , Before , After となっており、Beforeに値を設定すると
その前の場所にアイテムが入ります。今回はBefore:=1 として1番目より
前にアイテム「5」を追加しています。
またAfterに値を設定するとその番号より後にアイテムを追加します。
そしてkeyに文字列を設定すると、その文字列でアイテムにアクセスできます。

便利な事にコレクションは拡張For文で値を取り出す事ができます。図1のように
For Each Nextでcolより値を順次取り出しています。
今回はコレクションにセットした値の型を共通にしていない為、Variant型の
valueで値を受け取っています。

コレクションにはインスタンスを格納する事も可能です。つまりインスタンスの
集合も扱えます。個人的には拡張For文とセットで使うのが便利かなと思います。