【VBA】多次元コレクション

部署>年月>割合の場合。

中村18
齋藤25
部署A
中村18
齋藤25
部署B
Sub 紐づけデータを保存()
    ' 外側のコレクション(部署コレクション)
    Dim 部署コレクション As New collection
    
    ' 部署ごとのループ
    Dim 部署 As Variant
    For Each 部署 In Array("部署A", "部署B")
        ' 内側のコレクション(名前コレクション)
        Dim 名前コレクション As collection
        Set 名前コレクション = New collection
        ' 名前と年齢を紐づけ
        名前コレクション.Add 18, "中村"
        名前コレクション.Add 25, "齋藤"
        ' ... 他の名前と年齢を追加
        
        ' 部署コレクションに名前コレクションを紐づけ
        部署コレクション.Add 名前コレクション, 部署
    Next 部署
    
    ' データの使用例
    Dim 名前年齢 As Variant
    Set 名前年齢 = 部署コレクション("部署A") ' 部署Aの名前コレクションを取得
    Debug.Print 名前年齢("中村") ' 部署Aの中村の年齢を表示
End Sub

コメント

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