配列の宣言

広告

ではまず配列の宣言方法です。構文は下記のようになっています。

Dim 変数名(配列の要素数 - 1) As データ型

通常の変数と異なる点は、1つの変数に対してデータを格納できる領域を何個確保するかを指定することです。1つ1つの領域を配列の要素といいますが、例えば10個の要素を持つ配列を作成する場合には、変数名(9)と記述します。

なぜ実際の要素数よりも1を引くかと言いますと、配列の要素を区分するためのインデックス番号は0から始まるためです。例えば3個の要素を持つ配列の場合はインデックス番号は「0、1、2」となります。配列の宣言の時には0から何番目のインデックス番号までを使うかを表す数値を指定するため、実際の要素数よりも1つ少ない数値を指定します。

例としてString型で要素を10個持つ配列変数「str」を宣言する場合は次のようになります。

Dim str(9) As String

次に配列の各要素を使う方法です。変数名自体は配列全体を表していますので、配列に含まれる1つ1つの要素は、変数名(インデックス番号)という形で使用します。

変数名(インデックス番号) = 格納する値

先に書きましたとおりインデックス番号は0から開始されますので、例えば次のような使い方となります。

Dim str(3) As String

str(0) = "山田"
str(1) = "佐藤"
str(2) = "伊藤"

変数+インデックス番号で変数を表す点以外は通常の変数と同じように使うことができます。

サンプルプログラム

では簡単なサンプルで試してみましょう。

array1.bas

Sub テスト()
    Dim pref(3) As String
    Dim i As Integer

    Dim src As String
    Dim msg As String

    pref(0) = "東京都"
    pref(1) = "神奈川県"
    pref(2) = "千葉県"
    pref(3) = "埼玉県"

    src = "茨城県"
    msg = "関東以外の県です"

    For i = 0 To 3

        If src = pref(i) Then
            msg = "関東の県です"
        End If

    Next i

    Range("A1").Value = msg

    src = "埼玉県"
    msg = "関東以外の県です"

    For i = 0 To 3

        If src = pref(i) Then
            msg = "関東の県です"
        End If

    Next i

    Range("A2").Value = msg
End Sub

上記のマクロを実行すると次のようになります。

配列

Excel VBA入門の他の記事を見てみる

( Written by Tatsuo Ikura )