連想配列Dictionaryの使用例【ExcelVBA】
キーとデータをセットで格納できるオブジェクトで、通常の配列変数の場合はインデックス番号に値で使用していたが
連想配列の場合はキーにアイテムをセットで使用することができる
通常の配列変数 配列変数名(1)でインデックス番号に応じた値
連想配列 連想配列名(キーの名前)でキーに応じたアイテム
参照設定を行う方法でツール・参照設定からMicroSoft Scripting RuntimeにチェックをつけOKで参照可能にする
AddメソッドでKey・Itemにそれぞれ追加する
削除する場合はRemoveメソッドでKeyを指定して削除
Keyは一意のものでないと追加できません 例:Key:="aiueo" , Item:=10 その後 連想配列.Add Key:="aiueo",Item:=20(これはエラー)
纏めて削除する場合はRemoveAllメソッドで削除する
Keyの存在判定をする場合にはExistsメソッドで存在確認をしたいKeyを引数に指定し
Trueが返ってきた場合、そのKeyは存在し、Falseが返ってきた場合、そのKeyはない
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
実際に使用したサンプルコード
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'変更したセルがF5セルならば
If Target.Address = Range("F5").Address Then
'Dictionaryオブジェクトの宣言
Dim 連想配列 As New Scripting.Dictionary
'xという変数を整数型で宣言
Dim x As Integer
'店舗名をキーに、売上をアイテムに追加
For x = 2 To 27
連想配列.Add Key:=Cells(x, 2).Value, Item:=Cells(x, 3).Value
Next
'選択した店舗の売り上げを表示する
MsgBox "売上は" & 連想配列.Item(Target.Value)
End If
End Sub