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でなく、別配列へ代入が必要。
コメント