配列操作

Dictionaryに配列を格納する【ExcelVBA】

Dictionaryは連想配列です。キーとアイテムを1対1で使っていませんか?
Dictionaryに配列を入れ子で格納する事で、効率上がります。

(例)
ログデータから商品コードに紐づけて配列(売上個数、売上金額)を管理し売上一覧を作成。
ログデータから顧客コードに紐づけて配列(来店頻度、購入金額)を管理し顧客ベストを作成

Dictionaryに配列を格納するサンプルコード

'参照設定 Microsoft Scripting Runtime
Public Sub sample()
    Dim arr As Variant
    
    Dim dic As Dictionary
    Set dic = New Dictionary
    
    '■配列を作成
    arr = Array(100, 200, 300, 400, 500, 600)
    
    '■配列をdicに格納する
    dic.Add "あああ", arr
    
    Debug.Print dic.Item("あああ")(0) '100
    Debug.Print dic.Item("あああ")(1) '200
    Debug.Print dic.Item("あああ")(2) '300
    Debug.Print dic.Item("あああ")(3) '400
    Debug.Print dic.Item("あああ")(4) '500
    Debug.Print dic.Item("あああ")(5) '600
    
    '■変数arrに格納しなくてもArray関数で格納できます
    dic.Add "いいい", Array("AAA", "BBB", "CCC")
    Debug.Print dic.Item("いいい")(0) 'AAA

    '■配列から単独の値に変更可能。
    dic("あああ") = 2000
    Debug.Print dic.Item("あああ") '100

    '■配列から配列に変更可能。
    dic("いいい") = Array("a", "b", "c")
    Debug.Print dic.Item("いいい")(0) '100

    '■配列内の一部の要素だけも変更可能。
    dic("いいい")(0) = "aaa"
    Debug.Print dic("いいい")(0) 'aaa

End Sub

関連記事

指定した要素で配列を作成【Array関数】【ExcelVBA】
Dictionaryにキーが存在するかチェックする【Existsメソッド】【ExcelVBA】
Dictionaryにキーと要素を追加する【Addメソッド】【ExcelVBA】

コメント

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