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

配列の要素を識別するために使うインデックス番号は、デフォルトでは 0 から開始されますが、これを任意の数値に変更することが出来ます。ここでは Excel VBA を使ってインデックスの範囲を変更する方法について解説します。

(Last modified: )

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

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

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) = "斉藤"

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

サンプルプログラム

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

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 )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。