HOME > 即効テクニック > Excel VBA > 関数関連のテクニック > 静的配列の要素を最初期化/動的配列に割り当てたメモリを開放する(Eraseステートメント)

即効テクニック

関数関連のテクニック

静的配列の要素を最初期化/動的配列に割り当てたメモリを開放する(Eraseステートメント)

(Excel 2000)
引数Arraylistで指定した配列変数を消去します。静的配列、つまり要素数が決まっているような配列では、各要素の値が初期化され、動的配列の場合には、割り当てられていたメモリが開放されます。配列変数のタイプによる動作の違いは、次の一覧のとおりです。


・配列変数の型別のEraseステートメントの実行結果
配列の型            Erase ステートメントの実行結果
静的数値配列          要素はすべて0に設定されます。
静的文字列配列(可変長)     要素はすべて長さ0の文字列("")に設定されます。
静的文字列配列(固定長)     要素はすべて0に設定されます。
静的バリアント型(Variant)配列 要素はすべてEmpty値に設定されます。
ユーザー定義型配列       各要素は、別個の変数として設定されます。
オブジェクト配列        要素はすべて特別な値Nothingに設定されます。


  構文 Erase Arraylist

 設定項目        内容
  Arraylist       消去する配列変数を指定 [省略不可]


次のサンプルは、静的文字配列(可変長)における、Eraseステートメントの動作を確認するためのものです。


●サンプル●
Sub EraseSamp1()
    '---静的文字配列
    Dim myArray(1 To 5) As String
    Dim i As Integer

    For i = 1 To 5
        '---静的文字配列の要素に値を設定
        myArray(i) = Chr(i + 64)
    Next
    MsgBox "myArrayの値 : " & Join(myArray(), ",")
    '---静的配列の場合は要素の値を初期化
    Erase myArray
    MsgBox "myArrayの値 : " & Join(myArray(), ",")

End Sub

●解説●
Join関数を用いて、配列の中身をカンマ区切りで出力して確認しています。
Eraseステートメント実行以前と以後の状態を比較してみてくさだい。