インデックスの範囲を変更

広告

デフォルトの場合、配列の要素を識別するために使うインデックス番号は0から開始されますが、これを好きな数字に変更することが出来ます。

構文は下記のようになっています。

Dim 変数名(最小値 To 最大値) As データ型

例えばインデックス番号として3番から6番を使う場合には次のように記述します。

Dim str(3 To 6) As String

このように配列変数を宣言した場合には、各要素を識別するのに使うインデックス番号も3から6になります。

Dim str(3 To 6) As String

str(3) = "山田"
str(4) = "佐藤"
str(5) = "伊藤"
str(6) = "斉藤"

配列によって開始インデックス番号を変更すると、メンテナンスの時に混乱するかもしれませんので統一しておいた方がいいと思います。

サンプルプログラム

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

array2.bas

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

    Dim src As String
    Dim msg As String

    pref(3) = "東京都"
    pref(4) = "神奈川県"
    pref(5) = "千葉県"
    pref(6) = "埼玉県"

    Range("A1").Value = msg

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

    For i = 3 To 6

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

    Next i

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

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

配列

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

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)