二次元配列を宣言する

備忘録記事です。Access・ExcelのVBAで二次元配列を宣言するには、例えば

Dim MyVar(10,3) As Variant

のように宣言する。宣言の後に要素数が変わる場合は「Redim」で定義しなおせるが、VBAでは動的に定義する際には最終次元の要素数しか変更できない。
つまり上記の場合、MyVar(10,3)をMyVar(10,5)に変更はできても、MyVar(11,3)には出来ない・・・らしい。

そこで私の場合普段どうやっているかと言うと、とりあえず宣言のときには

Dim MyVar() As Variant

と宣言しておき、要素数を先に数える。例えば「顧客ID、顧客区分」という組み合わせのデータを配列にしたいが、条件に合う顧客IDがいくつあるのか数えなければわからない、という場合には、上記の宣言をした後に、条件に該当する顧客IDを数え、(例えば数えた顧客IDの数が150だという場合)その後、

Redim MyVar(149,1)

と定義し直す(実際これで出来ている(^^))

 

Print Friendly, PDF & Email