こんにちは。
場合によって意味が違ったりするので、サンプル3種。
' ' ///
Sub Re8377795a() ' Variant型変数に動的配列
Dim test As Variant
Dim i As Long
ReDim test(65 To 90) As String ' 初期化、次元(サイズ)を再定義
For i = 65 To 90
test(i) = Chr(i)
Next i
MsgBox "■" & Join(test) & "■"
ReDim test(65 To 90) ' 再初期化
MsgBox "■" & Join(test) & "■"
Erase test ' メモリ解放
MsgBox "■" & Join(test) & "■"
End Sub
Sub Re8377795b() ' 動的配列
' Dim test() As Variant
Dim test() As String
Dim i As Long
ReDim test(65 To 90) ' 初期化、次元(サイズ)を再定義
For i = 65 To 90
test(i) = Chr(i)
Next i
MsgBox "■" & Join(test()) & "■"
ReDim test(65 To 90) ' 再初期化
MsgBox "■" & Join(test()) & "■"
Erase test() ' メモリ解放
MsgBox "■" & Join(test()) & "■"
End Sub
Sub Re8377795c() ' 静的配列
' Dim test(65 To 90) As Variant ' 初期化、次元(サイズ)を定義
Dim test(65 To 90) As String ' 初期化、次元(サイズ)を定義
Dim i As Long
For i = 65 To 90
test(i) = Chr(i)
Next i
MsgBox "■" & Join(test()) & "■"
Erase test() ' 再初期化
MsgBox "■" & Join(test()) & "■"
End Sub
' ' ///
〓以下、VBAヘルプ「Erase ステートメント」「解説」より抜粋引用〓
<配列の型> <Erase ステートメントの実行結果>
静的数値配列 要素はすべて 0 に設定されます。
静的文字列配列 (可変長) 要素はすべて長さ 0 の文字列 ("") に設定されます。
静的文字列配列 (固定長) 要素はすべて 0 に設定されます。
静的バリアント型 (Variant) 配列 要素はすべて Empty 値に設定されます。
ユーザー定義型配列 各要素は、別個の変数として設定されます。
オブジェクト配列 要素はすべて特別な値 Nothing に設定されます。
〓以上、引用〓
因みに、上記サンプル b、c で出てくる test() については、
単に test と省略して書いても動きますが、配列であることを明示する意味で
変数の末尾に()を付けることが推奨されています。
(Dim test() As ... のように動的配列を宣言する場合は無論、()は省略できませんが)
とりあえず、以上です。
お礼
ありがとうございます。