構文
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)と覚えましょう。
コメント