あじちゃんの備忘録。

〜ここはメモ帳です

【vba】DictionaryのkeyがVariant型だとStringでは呼び出せない

A B C
1 ねこ いぬ うさぎ
2 にゃー わん きっ
3 たま ぽち うさ
Sub sample1()

    Dim dic1 As dictionary
    Set dic1 = New dictionary
    Dim dic2 As dictionary
    Set dic2 = New dictionary
    
    For Each Item In Sheets(1).Range("A1:C1")
        Call dic1.Add(Item, "★_" & Item)
        Call dic2.Add(CStr(Item), "★_" & Item)
    Next Item
    
    Debug.Print "dic1: " & dic1.Item("ねこ")
    '=> dic1: 
    Debug.Print "dic2: " & dic2.Item("ねこ")
    '=> dic2: ★_ねこ
End Sub

格納するときは必ずキャストしよう。