Redimで配列を再初期化する
'■Redimで再定義する
Public Sub sample()
Dim arr() As Variant
'■定義
ReDim arr(3)
arr(1) = "Excel"
arr(2) = "Word"
arr(3) = "Access"
'■再定義され、arr(1),arr(2),arr(3)は初期化された
ReDim arr(5)
Debug.Print arr(1) '""
Debug.Print arr(2) '""
Debug.Print arr(3) '""
Debug.Print arr(4) '""
Debug.Print arr(5) '""
'■型も変更する場合はVariantで定義していれば可能。xxx()といった配列状態では不可
Dim xxx As Variant
ReDim xxx(2) As String
xxx(1) = "Excel"
Debug.Print xxx(1) '"Excel"
End Sub
まとめ
- Eraseステートメントは初期化
- Redimは再初期化・再定義(要素は全て消える)。
- Redim Preserveは再定義(要素は残したまま)
※要素数を増やす場合、
二次元目を増やすのは問題ないが、
一次元目を増やすのはRedim Preserveでなく、別配列へ代入が必要。



コメント