配列(Dictionary)

Dictionaryのキー/アイテム(要素)を取得する【ExcelVBA】

Dictionaryに要素を追加(Add)して、データを取得する場合は色々な方法があります。
そもそもDictionaryは配列ですので、配列と考えるとわかりやすいかもしれません。

Dictionaryのキー/アイテムを取得するサンプルコード

'参照設定 Microsoft Scripting Runtime
Public Sub sample()

    Dim dic As Dictionary
    Set dic = New Dictionary
        
    dic.Add "1月", "Jan"
    dic.Add "2月", "Feb"
    dic.Add "3月", "Mar"
    dic.Add "4月", "Apr"
    dic.Add "5月", "May"
    dic.Add "6月", "Jun"
    dic.Add "7月", "Jul"
    dic.Add "8月", "Aug"
    dic.Add "9月", "Sep"
    dic.Add "10月", "Oct"
    dic.Add "11月", "Nov"
    dic.Add "12月", "Dec"
    
    Dim dKey As Variant
    
    '■for eachでdicを全てループさせれば一度に取得できる
    For Each dKey In dic
        Debug.Print dKey                'keyを取得
        Debug.Print dic.Item(dKey)      'itemを取得
    Next

    '■Dictionaryは配列なのでJoinで一度に出力できる
    Debug.Print Join(dic.Keys, "/")     '1月/2月/3月/4月/5月/6月/7月/8月/9月/10月/11月/12月
    Debug.Print Join(dic.Items, "/")    'Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Nov/Dec

    '■一つづつ取得する場合はKeysとItem(Items)を使用する
    Debug.Print dic.Keys(0)     '1月
    Debug.Print dic.Items(0)    'Jan
    Debug.Print dic.Item("1月") 'Jan
    Debug.Print dic.Item("あ")  '存在しないので何も表示されない
    
End Sub

関連記事

Dictionaryにキーと要素を追加する【Addメソッド】【ExcelVBA】
Dictionaryにキーが存在するかチェックする【Existsメソッド】【ExcelVBA】
配列内の重複した要素を削除する【Dictionary】【ExcelVBA】

コメント

タイトルとURLをコピーしました