これに対する2次元の答えは以下のようになります。これを行うには多くの方法がありますが、これは単なる例です。 2次元配列は素晴らしいですが、実装の周りにいくつかの考えが必要です。理想的には、それを実装するために何らかの形の再帰を使用したいと思うでしょう。以下の例では静的な方法でそれらを設定しています。
Public Sub Sample()
Dim AryTable() As String
Dim LngRow As Long
Dim LngCol As Long
'Below is a two dimensional array, think of it as a
'table with 3 rows and 5 columns (the base is zero
'so it is not 2 rows and 4 columns as it may look)
ReDim AryTable(2, 4)
'We can then populate (or not) each 'cell' of the array
'Row 1
AryTable(0, 0) = "1"
AryTable(0, 1) = "Field1"
AryTable(0, 2) = "Field2"
AryTable(0, 3) = "Field3"
'Row 2
AryTable(1, 0) = "2"
AryTable(1, 1) = "Field1"
AryTable(1, 2) = "Field2"
AryTable(1, 3) = "Field3"
AryTable(1, 4) = "Field4"
'Row 3
AryTable(2, 0) = "3"
AryTable(2, 1) = "Field1"
AryTable(2, 2) = "Field2"
AryTable(2, 4) = "Field4"
'Ubound by the first dimension to go through the rows
For LngRow = 0 To UBound(AryTable, 1)
'Ubound by the second dimension to go through the columns
For LngCol = 0 To UBound(AryTable, 2)
Debug.Print AryTable(LngRow, 0) & ": " & AryTable(LngRow, LngCol)
Next
Next
End Sub
注意してください。最初に配列のサイズを宣言しないと、後で変更することができます。
これが宣言されている(後で変更することはできません): -
Dim AryTable(1,2) as string
これが宣言されていない(と後で変更することができます): -
Dim AryTable() as string
ヨーヨーはその宣言をしていない場合にはサイズ(だから変更することができます)を使用する前にそれをサイズする必要があります。それを行う、リセットする、または保存するには2つの方法があります。
これにより、配列がクリアされ、新しいサイズに設定されます。配列のサイズが以前の100で、データが入っていた場合は、以下のようにすべてのデータが削除されますが、データは大きくなります。
Redim AryTable(200)
配列のサイズが以前に100だったデータにそれを持っていた場合、以下のすべてのデータを保持し、あなたが唯一の第二を調整するための2つの次元配列で、それは大きな
Redim Preserve AryTable(200)
になるだろう寸法。以下okです: - 以下
Redim AryTable(2,4)
Redim Preserve AryTable(2,8)
失敗します - あなたは、テーブルのようなデータを格納するために2次元配列を使用したい場合は、これを考慮して
Redim AryTable(2,4)
Redim Preserve AryTable(4,8)
を最初のディメンションを使用します2番目の行は列のカウントがめったに変化しませんが、行が追加される可能性があります。
@Gary Evansの回答は仕事をするだろうし、理解しやすい。私はそのように行くだろう。とにかく、一般的な解決策(むしろあいまいではないが、私は恐れている)のために[this](http://stackoverflow.com/a/37777993/1726522)を見てください。私はそれを使用しており、それは強力であることが判明しました。 – CMArg