Excel VBA 入門講座

Excel VBA Tips Excel VBA 入門講座

連想配列(Collectionオブジェクト使用)

一般的な配列は、添え字に数値を使用します。そうではなく、文字列の要素を文字の添え字で操作できるような配列を 連想配列と呼びます。例えば都道府県と都道府県コードのような関係です。

連想配列を使用する場合、Dictionaryオブジェクトを使用する方法とCollectionオブジェクトを使用する方法とがあります。ここではCollectionオブジェクトを使用するご紹介します。

Collectionオブジェクトを使用する方法

Collectionオブジェクトにて連想配列を使用する場合、以下の通り宣言します。


Dim 連想配列名 As Collection
Set 連想配列名 = New Collection

Collectionオブジェクトには以下のメソッドとプロパティが用意されています。

メソッド説明
AddCollection オブジェクトにメンバを追加します
Item指定した位置または文字列に対応するCollection オブジェクトのメンバを返します
RemoveCollection オブジェクトからメンバを削除します
プロパティ説明
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
Excel VBA Tips Excel VBA 入門講座 TOP