構文
Erase (arraylist)
| 引数 | arraylist | 初期化する配列を指定 |
Eraseで配列を初期化する
'■Eraseで要素をクリアする
Sub sample_Array_Erase()
Dim arr1(2) As Long
Dim arr2 As Variant
'■静的配列の場合は、初期化される(データ型によって初期値は異なる)
arr1(0) = 1
arr1(1) = 2
arr1(2) = 3
Erase arr1
'■初期化Long型なので0が初期値
MsgBox arr1(0) '1ではなく0
MsgBox arr1(1) '2ではなく0
MsgBox arr1(2) '3ではなく0
'■動的配列の場合は、メモリ解放される
ReDim arr2(1)
arr2(0) = 1
arr2(1) = 2
Erase arr2
'■「実行時エラー9 インデックスが有効範囲にありません」エラーポップアップが表示
MsgBox arr2(0)
MsgBox arr2(1)
'■動的配列を再利用するには、再度 ReDim ステートメントで再定義しましょう
End Sub
各配列の方の初期値
| 配列の型(静的) | 初期値 | データ型例 |
| 数値型 | 0 | IntegerやLong等 |
| 文字列型(可変長) | “” (長さ0の文字列) | String |
| 文字列型(固定長) | 0 | String*10 |
| バリアント(Variant)型 | Empty | Variant |
| ユーザー定義型 | 各要素は別々の変数として設定 | ユーザー定義 |
| オブジェクト(Object)型 | Nothing | Object |
※動的配列の場合は、メモリ解放されるので初期値の概念はありません。
Redimや Redim Preserveで再定義しましょう。
配列の宣言(静的/動的/1次元/2次元)【ExcelVBA】
その他
- Eraseステートメントは一次元配列、二次元配列でも動作は変わりません。
- 動的配列はEraseではなく、再定義する(Redim/Redim Preserve)と覚えましょう。



コメント