VBAでの2次元配列の初期値定義
VBAはVB6ベースなので、VB.NET系のように宣言と初期値設定が一緒にできません。
なので、普通の2次元配列もジャクの2次元配列も宣言した後に代入文で初期値を代入します。
以下のVBAサンプルは、2次元配列のデータをEXCELのセルへ代入しています。
Sub aaa() Dim data(2, 3) As Variant '普通の2次元配列宣言 Dim data2() As Variant 'ジャグ配列にするための宣言 data2 = Array(Array(0, 10, 20, 30), _ Array(1, 11, 21, 31), _ Array(2, 12, 22, 32)) data(0, 0) = 0 data(0, 1) = 10 data(0, 2) = 20 data(0, 3) = 30 data(1, 0) = 1 data(1, 1) = 11 data(1, 2) = 21 data(1, 3) = 31 data(2, 0) = 2 data(2, 1) = 12 data(2, 2) = 22 data(2, 3) = 32 Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = "シートx" Worksheets("Sheet1").Delete Worksheets("Sheet2").Delete Worksheets("Sheet3").Delete Worksheets("シートx").Range(Cells(1, 1), Cells(3, 4)).Value = data ActiveWorkbook.SaveAs Filename:="C:\xxx.xls"
ちなみに、EXCELのセルに代入する場合は、ジャグ配列はNGで、普通の2次元配列でないとダメですね!