Dictionaryオブジェクトを使ってみた

Dictionaryオブジェクトを使ってみました。Dictionaryオブジェクトは、まず、キーに要素(文字列など)を割り当てます。割り当てたオブジェクトのメソッドによりキーの文字列を取り出したり、削除したりできます。たとえば、"shusin1"というキーには"神奈川"という文字列を割り当てたら、"shusin1"キーを引数として"神奈川"という文字列を取り出せます。これを使って、複数のキーを使ってメッセージを作成してみたいと思います。まず、キーは以下のように決めました。

キー文字列
shusin1神奈川
shusin2沖縄
shusin3東京
seikaku1怠惰
seikaku2優柔不断
seikaku3KY
hito1男性
hito2女性
hito3


次にA1セル、B1セル、C1セルにキーを入力します。

(※セルは入力規則のリストで選択できるようにしました。)




実行結果です。





プログラムコードです。

'-------------------------------
'参照設定
'・Microsoft Scripting Runtime
'-------------------------------
Option Explicit

Sub message()
    
    'Dictionaryオブジェクト生成
    Dim objD As Dictionary
    Set objD = CreateObject("Scripting.Dictionary")
    
    'キーと要素を設定
    objD.Add "shusin1", "神奈川"
    objD.Add "shusin2", "沖縄"
    objD.Add "shusin3", "東京"
    
    objD.Add "seikaku1", "怠惰"
    objD.Add "seikaku2", "優柔不断"
    objD.Add "seikaku3", "KY"
    
    objD.Add "hito1", "男性"
    objD.Add "hito2", "女性"
    objD.Add "hito3", "人"
    
    'メッセージ出力
    Dim str1 As String
    Dim str2 As String
    Dim str3 As String
    
    str1 = objD.Item(Cells(1, "A").Value)
    str2 = objD.Item(Cells(1, "B").Value)
    str3 = objD.Item(Cells(1, "C").Value)
    
    MsgBox "あなたは" & str1 & "出身の" & str2 & "な" & str3 & "ですね。"
    
    Set objD = Nothing

End Sub