ray88’s diary

お仕事で困ったとき用の自分用の覚書

動的配列の要素数を変更する

■Redimステートメントで要素数を変更する
■Redimステートメントで要素数を変更すると、それまで格納されていた値は全て消える
■既存の値を残したまま要素数のみ変更する場合はRedimステートメントにキーワードPreserveをつけて実行する

Sub testArray()
    '配列変数を宣言
    Dim strArray() As String
    'エクセルシート最終行格納用
    Dim intLastRow As Integer
    'カウンタ変数(エクセルシート用)
    Dim i As Integer
    '配列のインデックス用変数
    Dim intArrayIndex As Integer    
    '配列インデックスの初期値を設定
    intArrayIndex = 0        
    With Sheets("Sheet1")
        '最終行を特定
        intLastRow = .Cells(Rows.Count, 5).End(xlUp).Row
        For i = 2 To intLastRow
        '配列の要素数を変更
            ReDim Preserve strArray(intArrayIndex)
         'セルの値を配列の要素に格納
            strArray(intArrayIndex) = .Cells(i, 5)
            '配列のインデックスに1足す
            intArrayIndex = intArrayIndex + 1
        Next i
    End With    
    '配列の要素をログ出力
    For i = LBound(strArray) To UBound(strArray)
        Debug.Print "配列インデックス" & i & ":" & strArray(i)
    Next
End Sub