分かりやすく、使いやすく。

連想配列を使用する方法(Dictinaryの使用方法)

スポンサーリンク

Excel VBA では連想配列(ハッシュ)はありませんが、Dictionary という似た機能を持つオブジェクトがあります。この Dictionary を使用して連想配列のように実装することができます。

サンプルコードは次の通りです。

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Option Explicit
 
Sub test()
    'Dictionary の初期化
    Dim dicColors As Object
    Set dicColors = CreateObject("Scripting.Dictionary")
    
    'キーと値を追加。
    dicColors.Add "red", "赤"
    dicColors.Add "blue", "青"
    dicColors.Add "pink", "桃"
    
    '連想配列をループして中身を表示。
    Dim key As Variant
    
    For Each key In dicColors
         Debug.Print "ループ1回目:" & key
         Debug.Print "ループ1回目:" & dicColors(key)
    Next key
     
    '値の一部を変更
    dicColors("red") = "朱"
    dicColors("pink") = "ピンク"
     
    For Each key In dicColors
         Debug.Print "ループ2回目:" & key
         Debug.Print "ループ2回目:" & dicColors(key)
    Next key
    
    'キーを削除
    dicColors.Remove "red"
    dicColors.Remove "blue"
    
    For Each key In dicColors
         Debug.Print "ループ3回目:" & key
         Debug.Print "ループ3回目:" & dicColors(key)
    Next key
End Sub 

上記の実行結果は次の通りです。

実行結果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ループ1回目:red
ループ1回目:赤
ループ1回目:blue
ループ1回目:青
ループ1回目:pink
ループ1回目:桃
ループ2回目:red
ループ2回目:朱
ループ2回目:blue
ループ2回目:青
ループ2回目:pink
ループ2回目:ピンク
ループ3回目:pink
ループ3回目:ピンク 

上記以外にも、 Dictionary の詳しい使い方については、エクセルVBA/Dictionaryのページをご参照ください。

スポンサーリンク
スポンサーリンク