VBA配列
配列とは複数ある変数を1つ1つ定義するのではなく、まとめて定義することです。
例を見ながら配列について順番に確認していきましょう。
配列の作り方
複数のコードに1つずつ変数をつけていった場合、値を格納したい数だけ別々の変数を作らなければなりません。目的は同じなのに変数名は全て変わってきますし、数が増えるにつれて1つ1つに定義を行っていくのはとても大変です。
このように複数の同じような変数を利用するときに配列を使うととても便利です。配列とは1つの変数に対して複数の値を格納できるようにすることです。
配列の形式と要素
配列を作るということは、testという変数に合計6個の値を収納できるように領域を確保します。
どのように配列を整理していくのか順番に説明します。
領域を区別するために変数名の語尾に括弧をつけてその中に番号をいれて区別します。
このような形式を配列といいます。そしてこの配列に作られたそれぞれの領域を配列の要素といいます。
配列の宣言
配列の宣言は「Dim 配列名(数値)」という形式で表します。
Dim テスト(5)と宣言するときには、テスト(0),テスト(1),Aテスト(2)・・・テスト(5)というようになります。
このときに変数を特定する番号「( )内の番号」をインデックスといいます。
このとき注意しないといけないのが、インデックスの番号は0からはじまることです。
(5)の場合は、0.1.2.3.4.5 と合計6つの領域が用意されます。
間違いを減らすためにもDim 変数名あとに付ける括弧内の数字は、「要素数から1を引いた数字を設定」と覚えておくと良いでしょう。
インデックスを入力したら、配列でも変数同様で型を宣言しましょう。下のようにAs 変数の型を付け宣言します。
Dim 配列名(インデックス)As(変数の型)
配列のインデックスは特に指定しない場合「0」から始まります。
配列の使い方は理解していただけたでしょうか。
配列のメリットは比較する対象が数十個~数百個ある場合などで指定した条件に当てはまるかどうかを判別したり、要素を順番に取り出したりと様々なシーンで非常に便利なものとなります。
インデックスの範囲を変更する。
配列では要素の領域を表すインデックスの番号を指定することで、開始する領域を選択することができます。
指定しない場合は「0」から開始されますが、Toを使うことによって他の数値から始めることも可能です
・例
Dim test (5 To 7) As integer
このような場合、testのインデックスは5から7までの範囲になります。
もう一例として、モジュールシートの先頭部分に「Option Base 1」と入力することによってインデックスの最小値が0から1に変更されます。
この状態になると「Dim test (3)」では、test1 test2 test3が利用されることになり、0のカウントはされません。