Excel VBA Dictionaryのサンプル(Map)

Excel VBAのDictionaryのサンプルです。

目次

サンプル Dictionary
  キーと値を取得する
  件数を取得する(Count)
  指定のキーがあるか真偽値を返す(Exists)
  キーを指定して値を変更する
  キーを指定して削除する(Remove)

Dictionary

Dictionaryのサンプルです。

Sub test1()

    Dim color As Object
    Set color = CreateObject("Scripting.Dictionary")

    color.Add "a", "赤"
    color.Add "b", "黄"
    color.Add "c", "青"
    
    Debug.Print color("a") '赤
    Debug.Print color("b") '黄
    Debug.Print color("c") '青

End Sub

6~8行目は、dictionaryにキーと値を追加しています。
10~12行目は、キーを指定して値を表示しています。

キーと値を取得する

Sub test1()

    Dim color As Object
    Set color = CreateObject("Scripting.Dictionary")

    color.Add "a", "赤"
    color.Add "b", "黄"
    color.Add "c", "青"

    Dim c1 As Variant
    
    For Each c1 In color
        Debug.Print c1 'a b c
        Debug.Print color(c1) '赤 黄 青
    Next

End Sub

12行目は、For Each文でループさせています。
13行目は、キーを表示しています。
14行目は、値を表示しています。

件数を取得する(Count)

Sub test1()

    Dim color As Object
    Set color = CreateObject("Scripting.Dictionary")

    color.Add "a", "赤"
    color.Add "b", "黄"
    color.Add "c", "青"

    Debug.Print color.Count '3

End Sub

10行目は、countでdictionaryの要素の件数を取得しています。

指定のキーがあるか真偽値を返す(Exists)

Sub test1()

    Dim color As Object
    Set color = CreateObject("Scripting.Dictionary")

    color.Add "a", "赤"
    color.Add "b", "黄"
    color.Add "c", "青"

    If color.Exists("b") = True Then
        Debug.Print "存在します"
    End If

End Sub

10行目は、Dictionaryに指定のキーが存在するか確認しています。

キーを指定して値を変更する

Sub test1()

    Dim color As Object
    Set color = CreateObject("Scripting.Dictionary")

    color.Add "a", "赤"
    color.Add "b", "黄"
    color.Add "c", "青"

    color("b") = "オレンジ"
    
    Debug.Print color("b") 'オレンジ

End Sub

10行目は、キーを指定して値を変更しています。

キーを指定して削除する(Remove)

Sub test1()

    Dim color As Object
    Set color = CreateObject("Scripting.Dictionary")

    color.Add "a", "赤"
    color.Add "b", "黄"
    color.Add "c", "青"

    color.Remove ("b")

    For Each c1 In color
        Debug.Print c1 & color(c1) 'a赤 c黄
    Next

End Sub

10行目は、Removeでキーを指定して削除しています。

関連の記事

Excel VBA 文字列の位置を取得する(InStr/InStrRev)
Excel VBA 文字列を切り出す(Left/Mid/Right)

△上に戻る