一般的な配列は、添え字に数値を使用します。そうではなく、文字列の要素を文字の添え字で操作できるような配列を 連想配列と呼びます。例えば都道府県と都道府県コードのような関係です。
連想配列を使用する場合、Dictionaryオブジェクトを使用する方法とCollectionオブジェクトを使用する方法とがあります。ここではCollectionオブジェクトを使用するご紹介します。
Collectionオブジェクトにて連想配列を使用する場合、以下の通り宣言します。
Dim 連想配列名 As Collection
Set 連想配列名 = New Collection
Collectionオブジェクトには以下のメソッドとプロパティが用意されています。
メソッド | 説明 |
---|---|
Add | Collection オブジェクトにメンバを追加します |
Item | 指定した位置または文字列に対応するCollection オブジェクトのメンバを返します |
Remove | Collection オブジェクトからメンバを削除します |
プロパティ | 説明 |
---|---|
Count | コレクション内のオブジェクトの数を返します |
連想配列に値を追加する場合はAddメソッドを使用してキーとアイテムを追加します。
Sub SetArray()
Dim objCol As New Collection
objCol.Add "北海道", "01"
objCol.Add "青森県", "02"
objCol.Add "岩手県", "03"
objCol.Add "宮城県", "04"
objCol.Add "秋田県", "05"
objCol.Add "山片県", "06"
objCol.Add "福島県", "07"
Debug.Print objCol("01")
Debug.Print objCol("02")
Debug.Print objCol("03")
Debug.Print objCol("04")
Debug.Print objCol("05")
Debug.Print objCol("06")
Debug.Print objCol("07")
End Sub
itemプロパティを使用すると添え字によりセットされた値を参照することができます。連想配列の要素数はCountプロパティにて取得することができます。添え字は1から始まります。
Sub SetArray()
Dim objCol As New Collection
objCol.Add "北海道", "01"
objCol.Add "青森県", "02"
objCol.Add "岩手県", "03"
objCol.Add "宮城県", "04"
objCol.Add "秋田県", "05"
objCol.Add "山片県", "06"
objCol.Add "福島県", "07"
For i = 1 To objCol.Count
Debug.Print objCol.Item(i)
Next
End Sub
For Eachステートメントを使用すると添え字なしで連想配列の値を取得することができます。
Sub SetArray()
Dim objCol As New Collection
objCol.Add "北海道", "01"
objCol.Add "青森県", "02"
objCol.Add "岩手県", "03"
objCol.Add "宮城県", "04"
objCol.Add "秋田県", "05"
objCol.Add "山片県", "06"
objCol.Add "福島県", "07"
For Each v In objCol
Debug.Print v
Next v
End Sub