Erase ステートメント(配列の初期化・動的配列のメモリ解放)
Erase ステートメントの使い方
【書式】
Erase myArray [, myArray1, myArray2 … ]
【項目の説明】
- myArray ・・・ 消去する配列の変数名。複数指定する場合は、カンマ (,) で区切ります。
静的配列(通常の配列)の場合:すべての要素がデータ型に応じた初期値(下記の表を参照)でクリアされます。
動的配列:要素の保持自体を破棄し、要素をひとつも持たない宣言時の状態に戻ります(要素に割り当てたメモリは解放します)。
再利用するには、再度 ReDim ステートメントで、要素等をしていします。
静的配列の要素による Erase ステートメント実行結果
配列の型 | Erase ステートメント実行結果 |
数値型の配列 | 各要素は、「0」に設定されます |
文字列型(可変長)の配列 | 各要素は、長さ「0」の文字列(””)に設定されます |
文字列型(固定長)の配列 | 各要素は、「0」に設定されます |
バリアント( Variant )型の配列 | 各要素は、Empty 値 に設定されます |
ユーザー定義型の配列 | 各要素は、別々の変数として設定されます |
オブジェクト型の配列 | 各要素は、Nothing に設定されます |
Erase ステートメントの使用例
VBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
'ユーザー定義型の定義 Private Type mynewType Name As String Num As Long End Type Sub sample_erase01() Dim intArray(5) As Integer '整数型配列 Dim vstrArray(5) As String '文字列配列(可変長) Dim fstrArray(10) As String * 8 '文字列配列(固定長) Dim valArray(10) As Variant 'バリアント Dim myArray(3) As mynewType 'ユーザー定義 Dim objArray(3) As Object 'オブジェクト '上記静的配列を初期化 Erase intArray, vstrArray, fstrArray, valArray, myArray, objArray Debug.Print "数値 :" & intArray(0) Debug.Print "文字列(可変):" & vstrArray(0) & "(長さ= " & Len(vstrArray(0)) & ")" Debug.Print "文字列(固定):" & fstrArray(0) & "(長さ= " & Len(fstrArray(0)) & ")" If IsEmpty(valArray(0)) Then Debug.Print "バリアント型 :" & valArray(0) & "(値: " & "Empty" & ")" Debug.Print "ユーザー定義 :" & myArray(0).Name Debug.Print "ユーザー定義 :" & myArray(0).Num If objArray(0) Is Nothing Then Debug.Print "オブジェクト :" & "(値: " & "Nothing" & ")" End Sub |
実行結果
関連記事
-
-
エラー(CVErr 関数・IsError 関数・Error 関数)
CVErr 関数(エラー番号をエラー値に変換する)の使い方 【書式】 retur …
-
-
指定した値を16進数で表記した文字列に変換する(Hex 関数)
Hex 関数 の使い方 【書式】 result = Hex ( expressi …
-
-
カレントフォルダ(CurDir 関数、ChDir ステートメント、ChDrive ステートメント)
カレントフォルダ カレントフォルダとは、ブックを開いたり保存するときに既定で参照 …
-
-
VBA の演算子(演算子の優先順位)
演算子の優先順位 演算子の優先順位とは、1つの式の中に演算子が複数ある場合、どの …
-
-
カレントフォルダの取得・設定(DefaultFilePath プロパティ)
DefaultFilePath プロパティ カレントフォルダとは、ブックを開いた …
-
-
CPU に制御を移す(DoEvents 関数)
DoEvents 関数 DoEvents 関数を実行すると、CPU に制御を移し …
-
-
日付時刻:日付から曜日を取得( Weekday 関数、WeekdayName 関数 )
Weekday 関数(日付から曜日を表す数値を返す)の使い方 【書式】 week …
-
-
配列の添字の最小値を「1」に設定する
Option Base ステートメントを使用する 【書式】 Option Bas …
-
-
Math 関数( Abs,Atn,Cos,Exp,Log,Rnd,Sgn,Sin,Sqr,Tan )
Abs 関数 【書式】 value = Abs ( number ) 【引数・戻 …
-
-
文字列:文字列の空白を削除(Trim 関数, LTrim関数, RTrim関数)
Trim 関数・LTrim 関数・RTrim 関数の使い方 【書式】 <先頭と末 …
- PREV
- 配列(多次元配列・配列の次元の変更)
- NEXT
- Array 関数(バリアント型の配列を作成)