投稿者 ヤマダ  (社会人) 投稿日時 2023/7/26 16:32:58
現在Excelのマクロを組んでいます。

題名の通りなのですが、セルから取得した値をキーにして値を連番で設定し、そのキーの値を取り出したいのですが、上手くいきません。

    Type level_Data
        levelCd As String                     
        levelName As String                                
    End Type
 
    Dim levelCd As Object
    Set levelCd = CreateObject("Scripting.Dictionary")
    Dim levelNo As Long: levelNo = 1
    Dim keyChk As String
    Dim test_csv() As level_Data


    xlLastRow = Cells(Rows.Count, LEVEL_NAME_SELL).Row
    DtRowCnt = Worksheets("Sheet1").Cells(xlLastRow, "A").End(xlUp).Row
        
    For i = 2 To DtRowCnt
        If Not levelCd.Exists(Worksheets("Sheet1").Cells(i, "A").Value) Then
            levelCd.Add Key:=Worksheets("Sheet1").Cells(i, "A").Value, _
                             Item:=levelNo
            levelNo = levelNo + 1
        End If
    Next i

    For i = 2 To DtRowCnt
        keyChk = ""
        keyChk = Worksheets("Sheet1").Cells(i, "A")
        test_csv.levelName  = Worksheets("Sheet1").Cells(i, "A")
        test_csv.levelCd  = levelCd.Item(keyChk)
    Next i

セル値が数値の時に値が空白で帰ってくるのですが、数値はキーとして設定できないのでしょうか?
1や2がセル値にあり、それをキーとして設定し、その値を最終的には取り出せるようにしたいです。

よろしくお願いします。