Excelが大好きだ!

Excel大好き経理マンがExcelの事を書き綴っていきます。


スポンサードリンク

一風変わった?動的配列の宣言方法

動的配列を宣言する時はどうしていますか?

Dim Var() as variant

Redim Var(1 to 3)


上記のように変数名の後に()をつけて宣言し、

Redimで要素数を指定してから使用するのではないでしょうか。

しかし今回長年見慣れたこの方法とは違う宣言方法に出会いました。


()なしで動的配列宣言(の準備)

()なしでVariant型の動的配列を宣言する方法です。

Dim Var as variant


手元にあるExcel VBAの本を調べても()なしで宣言しているものはありませんでした。

自分も今まで動的配列を宣言する場合は()をつけていました。

では()を付ける場合・付けない場合でどのような違いがあるのでしょうか?

動的配列以外に使用できる

言うまでもなく()を付けない場合は普通のVariant型変数の宣言と同じになります。

ということは動的配列だけでなく他の変数にも使用することが出来ます。

()をつけると動的配列以外には使用することが出来ません。

Redim時に型変更可能

()を付けない場合、Redimでの要素数指定時に別の方を宣言することが出来ます。

変数宣言時にVariant型を指定していても、Redim時にlong型等別の型に変更することが出来ます。
f:id:ExcelLover:20200103195539j:plain


 まとめ

()をつけずに普通のVariant型からRedim時に動的配列を宣言する方法を取ることでコードに融通が効くようだと、これが動的配列の定石になりそうな気がします。

フォロワーさんからはこのような意見も頂きました。


しばらくは()を使用せずに動的配列の宣言をしてみようと思います。