配列(Dictionary)

Dictionaryのアイテム(要素)を変更・更新する【ExcelVBA】

Dictionaryを使用して重複のないユニークなリスト作成以外にも、データ集計としても使用する事が可能です。
その場合、itemの要素を更新する必要があります。

(例) ・仕入先単位で在庫数や在庫金額を計算したい。
・商品分類単位で売上累計額や、売上個数を知りたい。
・DM反響を調べるために、DM持参者から地域を判別したい。

Dictionaryのキーの要素を変更・更新するサンプルコード

'参照設定 Microsoft Scripting Runtime
Public Sub sample()
    Dim dic As Dictionary
    Set dic = New Dictionary
    
    Dim i As Long
    Dim dItem As String
    Dim dSale As Long
    
    '■売上ログデータから商品分類集計を行う
    For i = 2 To 7
        dItem = Cells(i, 2).Value
        dSale = Cells(i, 5).Value
        
        If dic.Exists(dItem) = True Then
            '■既にキーが存在していれば、値を足す
            dic(dItem) = dic(dItem) + dSale
        Else
            '■キーが存在していなければ、値を新規作成
            dic.Add (dItem), dSale
        End If
    Next i

    Debug.Print dic.Keys(0) & "/" & dic.Items(0) '化粧品/2500
    Debug.Print dic.Keys(1) & "/" & dic.Items(1) '日用品/2400
    Debug.Print dic.Keys(2) & "/" & dic.Items(2) 'ベビー用品/5200
End Sub


注意点

  • 配列と異なり、Loopで検索する必要がなくExistsメソッドで対応する為、シンプルなコードになります。
  • 今回のサンプルでは売上合計の集計データ作成ですが、itemに配列を持たす事で
    keys 化粧品 items売上個数4 売上金額2,500といった管理も可能です。

関連記事

コメント

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