VBAでの配列の宣言方法

配列の宣言

配列変数の宣言は、通常の変数と同様にDimステートメントを使用します。
ただし、配列変数であることを示すために、変数名の後に角括弧「[]」を付けます。
また、配列の要素の型を指定するために、Asキーワードを使用します。

例えば、整数型の配列変数を宣言する場合は、以下のように記述します。

この場合、intArrayは配列変数名、Integerは配列の要素の型を指定しています。この時点では、配列の要素数は指定されていないため、まだ配列は作成されていません。

配列の要素数を指定するには、ReDimステートメントを使用します。ReDimステートメントを使用することで、配列の要素数を後から変更することができます。

例えば、10個の整数を格納する配列を宣言する場合は、次のように記述します。

ここで、9は配列の最後の要素番号を指定しています。つまり、配列intArrayは、0から9までの10個の要素を持つことになります。

もう一つ、2次元配列の場合を考えてみましょう。
2次元配列は、表のような形でデータを格納することができます。2次元配列を宣言する場合は、以下のように記述します。

この場合、intArrayは10×10の配列で、要素数は100個です。最初のインデックスは0から9までの値を取るため、1次元配列と同じように、配列の最後のインデックスを指定します。

配列の宣言方法は、1次元配列、2次元配列、3次元配列といったように、次元数に応じて変化します。また、配列の要素の型には、整数型、浮動小数点型、文字列型など、様々なデータ型を指定することができます。

サンプルコード

以下サンプルコードで考えていきましょう。

次は整数型の1次元配列を宣言し、要素数5で初期化するサンプルコードです。

このコードは、整数型の1次元配列 intArray を宣言しています。要素数は5で、0から始まる添字を使用して、0から4の5つの要素が作成されます。
次に、各要素に対して値を代入しています。要素0には10、要素1には20、要素2には30、要素3には40、要素4には50が代入されます。

このように、配列の各要素に対して値を代入することができます。また、配列の宣言時に初期値を設定することもできます。例えば、次のように記述することができます。

この場合、Array 関数を使用して、配列の初期値を設定しています。この方法を使うと、初期値を簡潔に設定できます。

次に、文字列型の2次元配列を宣言し、要素数3×2で初期化するサンプルコードです。

このコードは、文字列型の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で初期化するサンプルコードです。

このコードは、日付型の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次元配列を使用して、異なる高度、温度、湿度の値を時間の経過に沿って格納することができます。
総じて言えるのは、あまり使う機会がありません。

コメント