配列の宣言
配列変数の宣言は、通常の変数と同様にDimステートメントを使用します。
ただし、配列変数であることを示すために、変数名の後に角括弧「[]」を付けます。
また、配列の要素の型を指定するために、Asキーワードを使用します。
例えば、整数型の配列変数を宣言する場合は、以下のように記述します。
1 |
Dim intArray() As Integer |
この場合、intArray
は配列変数名、Integer
は配列の要素の型を指定しています。この時点では、配列の要素数は指定されていないため、まだ配列は作成されていません。
配列の要素数を指定するには、ReDimステートメントを使用します。ReDimステートメントを使用することで、配列の要素数を後から変更することができます。
例えば、10個の整数を格納する配列を宣言する場合は、次のように記述します。
1 |
Dim intArray(9) As Integer |
ここで、9
は配列の最後の要素番号を指定しています。つまり、配列intArray
は、0から9までの10個の要素を持つことになります。
もう一つ、2次元配列の場合を考えてみましょう。
2次元配列は、表のような形でデータを格納することができます。2次元配列を宣言する場合は、以下のように記述します。
1 |
Dim intArray(9, 9) As Integer |
この場合、intArray
は10×10の配列で、要素数は100個です。最初のインデックスは0から9までの値を取るため、1次元配列と同じように、配列の最後のインデックスを指定します。
配列の宣言方法は、1次元配列、2次元配列、3次元配列といったように、次元数に応じて変化します。また、配列の要素の型には、整数型、浮動小数点型、文字列型など、様々なデータ型を指定することができます。
サンプルコード
以下サンプルコードで考えていきましょう。
次は整数型の1次元配列を宣言し、要素数5で初期化するサンプルコードです。
1 2 3 4 5 6 |
Dim intArray(4) As Integer intArray(0) = 10 intArray(1) = 20 intArray(2) = 30 intArray(3) = 40 intArray(4) = 50 |
このコードは、整数型の1次元配列 intArray
を宣言しています。要素数は5で、0から始まる添字を使用して、0から4の5つの要素が作成されます。
次に、各要素に対して値を代入しています。要素0には10、要素1には20、要素2には30、要素3には40、要素4には50が代入されます。
このように、配列の各要素に対して値を代入することができます。また、配列の宣言時に初期値を設定することもできます。例えば、次のように記述することができます。
1 2 |
Dim intArray(4) As Integer intArray = Array(10, 20, 30, 40, 50) |
この場合、Array
関数を使用して、配列の初期値を設定しています。この方法を使うと、初期値を簡潔に設定できます。
次に、文字列型の2次元配列を宣言し、要素数3×2で初期化するサンプルコードです。
1 2 3 4 5 6 7 |
Dim strArray(2, 1) As String strArray(0, 0) = "apple" strArray(0, 1) = "red" strArray(1, 0) = "banana" strArray(1, 1) = "yellow" strArray(2, 0) = "orange" strArray(2, 1) = "orange" |
このコードは、文字列型の2次元配列 strArray
を宣言しています。要素数は2行2列で、合計で4つの要素が作成されます。
strArray
には、複数の値が代入されています。最初の行の要素には “apple” と “red” が、次の行の要素には “banana” と “yellow” が、最後の行の要素には “orange” が代入されています。2次元配列は、行と列の2つの添字を使用して各要素にアクセスすることができます。例えば、strArray(0, 0)
は “apple”、strArray(1, 1)
は “yellow” になります。
このように、2次元配列は、表形式のデータを扱うのに便利なデータ構造です。例えば、Excelのセル範囲に相当するデータを2次元配列として扱うことができます。
次に、日付型の3次元配列を宣言し、要素数2×3×4で初期化するサンプルコードです。
1 2 3 4 5 6 7 8 |
Dim dateArray(1, 2, 3) As Date For i = 0 To 1 For j = 0 To 2 For k = 0 To 3 dateArray(i, j, k) = DateSerial(2023 + i, j + 1, k + 1) Next k Next j Next i |
このコードは、日付型の3次元配列 dateArray
を宣言しています。要素数は2面3行4列で、合計で24の要素が作成されます。
次に、3重の For
ループが使用されて、各要素に対して値が代入されます。ループは、最初の面を表す変数 i
、次の行を表す変数 j
、最後の列を表す変数 k
を使用して、すべての要素にアクセスします。DateSerial
関数を使用して、各要素に対して、2023年を起点として i
年、j
月、k
日の日付が設定されます。
例えば、dateArray(0, 1, 2)
には、2023年1月3日の日付が代入されます。
このように、多次元配列を使用することで、さまざまな種類のデータを効率的に格納および処理できます。3次元配列は、キューブ状のデータを表すのに便利です。また、このような複雑な配列を使用する場合、 For
ループを使用して要素にアクセスすることが一般的です。
3次元配列は、一般的には2次元配列よりもはるかに複雑なデータ構造であるため、より特殊な場面で使用されます。
3次元配列は、3つのインデックスを使用してアクセスすることができ、それぞれがそれぞれの要素に対応します。
3次元配列を使用する典型的な例は、3Dグラフィックスや科学技術計算です。このような分野では、3つのインデックスがx、y、z座標に対応し、各要素はその位置にある値を表します。
また、時間に沿ったデータや、地理的な要素を含むデータを格納する場合にも使用されます。例えば、気象学の場合、3次元配列を使用して、異なる高度、温度、湿度の値を時間の経過に沿って格納することができます。
総じて言えるのは、あまり使う機会がありません。
コメント