Array関数、動的配列

Array関数

Array関数は、任意のデータ型を要素とする配列全体を1つのバリアント型変数に格納することができるものです(任意とは、なんでもという意味)。

構文
Dim 変数名 AS Variant
変数名=Array(要素1,要素2,・・・)

サンプル
PC上の日付データから曜日を表示します。
Array関数サンプルの図
結果
結果の図
ここで、Array関数のインデックス番号の下限値は常に0です(Option Base 1が利かない)。Weekday関数のデータは1からなので、Youbiのデータを表示するときは、MyWeek-1をしています。


動的配列

これまでの配列は、要素数を事前に決定していましたが、事前に決定できない場合は、動的配列を宣言します。動的配列は、コードを実行時に要素数を変更できます。

構文
Dim 配列変数名() As データ型
ReDim 配列変数名(要素の上限値)


サンプル
下記のような名簿で、人数が変動する場合を考え、配列に氏名と年齢を格納する場合を考えます。
名簿の図
行数が変化するので、データの最終行を参照して、配列の要素数を変更します。
サンプルプログラムの図
Redimステートメントは何度でも使用することができます。ただし、Variant型に格納されている配列以外は、一度あるデータ型で宣言された配列のデータ型を 別のデータ型に変更することはできないので注意が必要です。

Redimステートメントを実行すると、配列に格納されているすべてのデータは初期化されます。便利ではありますが、データを保持したまま、サイズを変更したい場合があるかもしれません。
その場合は、Preserveキーワードを使用します。
構文
ReDim Preserve 配列変数名(要素の上限値)

Preserve を指定した場合、変更できるのは、動的配列の最後の次元のサイズだけです。また、次元数は変更できません。
使用例
ReDim Matrix(5, 5, 5)

ReDim Preserve Matrix(5, 5, 10)


Excel VBAのチップス一覧へ戻る

ツイート
このエントリーをはてなブックマークに追加
inserted by FC2 system