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 |
実行結果
関連記事
-
-
配列の要素数を取得する(UBound 関数・LBound 関数)
UBound 関数・LBound 関数 【書式】 result = UBound …
-
-
Option Compare ステートメント
Option Compare ステートメントの使い方 【書式】 Option C …
-
-
文字列:指定した文字の文字コードを取得する(Asc 関数)
Asc 関数 【書式】 result = Asc ( string ) 引数・戻 …
-
-
文字列:文字を指定数並べた文字列を返す(String 関数)
String 関数 【書式】 result = String ( number, …
-
-
VBA で正規表現を使う(RegExp オブジェクト)
RegExp オブジェクト VBA で正規表現を使うには、VBScript のR …
-
-
取り消し線を設定する(Strikethrough プロパティ)
取り消し線を設定する(Strikethrough プロパティ) Striketh …
-
-
データをクリアする(ClearContents メソッド)
ClearContents メソッド 対象がセル範囲(Range オブジェクト) …
-
-
日付時刻:日付・時刻の間隔を取得( DateDiff 関数 )
DateDiff 関数の使い方 【書式】 result = DateDiff ( …
-
-
文字列:アルファベットを小文字または大文字に変換(LCase 関数,UCase 関数)
LCase 関数・UCase 関数 の使い方 【書式】 <アルファベットの大文字 …
-
-
文字列:文字列を指定した形式に変換する(StrConv 関数)
StrConv 関数の使い方 【書式】 result = StrConv ( s …
- PREV
- 配列(多次元配列・配列の次元の変更)
- NEXT
- Array 関数(バリアント型の配列を作成)
