項目
配列を初期化する(Erase)
例
Option Compare Database
Option Explicit
'-------------------------------------------------
' 配列を初期化する(Erase)
'-------------------------------------------------
Sub 配列初期化()
Dim i As Integer
'--------------------------------------
Debug.Print "静的数値配列"
'--------------------------------------
Dim intArray(10) As Integer
For i = LBound(intArray) To UBound(intArray)
intArray(i) = i
Debug.Print intArray(i)
Next
Debug.Print "■ 0に再初期化"
Erase intArray
For i = LBound(intArray) To UBound(intArray)
Debug.Print intArray(i)
Next
'--------------------------------------
Debug.Print "静的文字列配列 (可変長)"
'--------------------------------------
Dim strArray(10) As String
For i = LBound(strArray) To UBound(strArray)
strArray(i) = Chr(65 + i)
Debug.Print strArray(i)
Next
Debug.Print "■ 長さ0の文字列に初期化"
Erase strArray
For i = LBound(strArray) To UBound(strArray)
Debug.Print strArray(i)
Next
'--------------------------------------
Debug.Print "静的文字列配列 (固定長)"
'--------------------------------------
Dim strFixArray(10) As String * 3
For i = LBound(strFixArray) To UBound(strFixArray)
strFixArray(i) = Chr(65 + i) & Chr(66 + i) & Chr(67 + i)
Debug.Print strFixArray(i)
Next
Debug.Print "■ 指定した長さのスペースに初期化"
Erase strFixArray
For i = LBound(strFixArray) To UBound(strFixArray)
Debug.Print Len(strFixArray(i))
Next
'--------------------------------------
Debug.Print "動的数値配列"
'--------------------------------------
Dim intDynamicArray() As Integer
ReDim intDynamicArray(5)
Debug.Print UBound(intDynamicArray)
Debug.Print "■ メモリを解放"
Erase intDynamicArray
'※ 「インデックスが有効範囲にありません。」で落ちる。
'Debug.Print UBound(intDynamicArray)
End Sub