備忘録記事です。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)
と定義し直す(実際これで出来ている(^^))