Redim Preserveで要素数を増やすor減らす
'■Redim Preserveで再定義する Public Sub sample() Dim arr() As Variant '■定義 ReDim arr(3) arr(1) = "Excel" arr(2) = "Word" arr(3) = "Access" '■要素を保持し、再定義する、Redim と異なりarr(1),arr(2),arr(3)は初期化されない ReDim Preserve arr(5) Debug.Print arr(1) '"" Debug.Print arr(2) '"" Debug.Print arr(3) '"" Debug.Print arr(4) '"" Debug.Print arr(5) '"" Dim xxx As Variant '■最初はRedimで定義がされてないとエラー発生する ReDim Preserve xxx(2) End Sub
まとめ
- Eraseステートメントは初期化
- Redimは再初期化・再定義(要素は全て消える)。
- Redim Preserveは再定義(要素は残したまま)
※要素数を増やす場合、
二次元目を増やすのは問題ないが、
一次元目を増やすのはRedim Preserveでなく、別配列へ代入が必要。
コメント