【VBA】配列の使い方【宣言の仕方・種類・関数を解説】

VBA

コード内では変数を使うことで値に名前を付けて扱うことができます。

ですが、下のように同種の値を複数宣言するのは手間だし、管理するにあたって非効率なケースが出てきたりします。

Dim name1 As String

Dim name2 As String

Dim name3 As String

Dim name100 As String

例えば、同時に「100人分の名前」を使って処理を行う場合、100個のString型を宣言する必要があるかもしれなく面倒です。

また、ループ処理を行う際にはイチイチ値を確認しながら記述をするのは面倒だし、コードの行数が増えてとても見づらいモノになってしまいます。

 

VBAではこういった値の集合を扱う方法をいくつか用意されています。

その1つが”配列”です。

 

そんな配列について本記事では解説していきます。

スポンサーリンク



VBAでの配列とは

上のイメージのように入れ物を”要素、その入れ物に割り振られた数字(整数)を”インデックスと呼びます。

加えて、配列の要素の数を”要素数または”サイズ”といいます。

 

そして、この配列を使うイメージとして複数の箱にモノを入れて管理するといった感じです。

 

例えば、固定配列の最もシンプルなコードは下になります。

 

上のコードでは2行目にインデックス最大値が”2”の配列を宣言しています。

つまり、簡単に言うと「2行目時点で”0,1,2”と書かれた3つ箱が用意された」という状況になります。

 

そして、3行目から5行目で3つの箱にそれぞれ値が入れる(代入)処理になります。

 

このように「箱を用意して、入れる」というのが配列の基本操作になります。

 

配列の種類

配列は下の3種類があります。

種類 記述の仕方
固定配列 配列名(インデックス最大値) As 型名
動的配列 配列名() As 型名
多次元配列 配列名(1次元 , 2次元) As 型名 ※二次元配列

 

固定配列:宣言時に要素数を指定する配列。要素数を変えることはできない。この配列のイメージは”隙間なく並べられた複数の箱”である。

動的配列:宣言時に要素数を指定しない配列。プログラム実行時に可変的に配列の要素数を変更したいときに使用。

多次元配列:特性は固定配列と同じ。この配列のイメージは”表”である。

 

【VBA】固定配列の使い方【宣言から使用法まで】
固定配列は”宣言時にその配列の要素数を指定する配列”です。 なので、指定した要素数は変えることはできません。 ちなみに逆にプログラム実行時に可変的に配列の要素数を変えられる配列を『動的配列』といいます。 固定配...
【VBA】動的配列の使い方【宣言から要素数の設定まで】
固定配列は一度宣言したら、要素数を変更することはできません。 ですが、プログラム実行時に可変的に配列の要素数を変更したい時があります。 そんな時に適している配列が”動的配列”になります。 では、さっそく動的配列につ...
【VBA】多次元配列の使い方【記述の仕方・イメージを解説】
一次元配列はよく使われる「複数の箱が一列に並べられている」といったイメージの配列です。 そして、配列には多次元の配列も扱うことができます。 その代表が”2次元配列”です。 その多次元配列について解説していき...

 

配列を扱う関数

下の関数は非常に使用頻度の高い関数です。

関数 解説
Array(要素1, 要素2) 配列を生成し、Variant型で返す
LBound(配列名) 配列のインデックス最小値を返す
UBound(配列名) 配列のインデックス最大値を返す

 

要素を1つずつ代入していくのは面倒です。

そういった要素が多い場合はArray関数を使い、一度に複数の値を格納します。

 

また、プログラム実行時に対象の配列のインデックスの最大値(最小値)を使ってループや分岐を行いたい場合は「LBound」「UBound」関数を使うと良いです。

この2つの関数の代表的な使い方は下の通りです。

 

2行目でインデックス(1~5)の要素数5つの配列を宣言しています。

 

そして、2つの関数の使い方でよくみられるのが、3行目の「インデックス最小値から最大値まで処理を繰り返す」というForループの記述です。

この2つの関数でループさせることで、配列全体の操作が可能にできるのです。

 

スポンサーリンク

コメント