'動的配列の宣言 Dim 動的配列() As Long
'動的配列要素数の宣言 ReDim 動的配列(5)
'動的配列の要素数の宣言(代入済みデータ保持) ReDim Preserve 動的配列(8)
配列とは、同じ変数名を複数同時に宣言することができる変数です
動的配列は、要素数が宣言時点では未定の状態で処理中に可変させることの出来る配列変数です
通常の変数の宣言方法とほぼ同じで、変数名の後に「()」を追加するだけです
この時に、なにも「()」の中には入れないことで動的配列となります
ただ、このままでは要素が無い状態なので使用はできません
「ReDim」を使用して要素数の宣言をすることで使用可能になります

画像の動きを見てください。
1回目の「ReDim 動的配列(2)」で、配列変数が使用可能になっています
そして2つの要素に値を代入させていますが、2回目の「ReDim 動的配列(5)」では代入させた値がクリアされてしまっています
「ReDim」で要素数の宣言を行うと、それまでに代入したデータは初期化されます
既存のデータはそのままに、あらたに要素数を追加してデータを追加させたい場合には「ReDim Preserve」を使用します
3回目の要素数宣言の「ReDim Preserve 動的配列(8)」の時点ではそれまでのデータはクリアされていません
処理が始まらないと要素数が分からない場合に、動的配列は使用します
ですが、要素数の確定するタイミング次第でこの要素数宣言の使い分けを行います
要素数の最大値がすぐに取得できる場合は、「ReDim」を使用します
要素数をループなどで随時追加していく場合には、「ReDim Preserve」を使用します
なお、「ReDim」でデータをクリアできますが、その目的では使用しないようにしてください、専用のコードがちゃんとあります
(配列変数のデータを初期化する方法)