配列を使う際にインデックス番号を変更したいときがあります。
初期値は「0」から始まりますが、インデックス番号を自由に変更する方法を説明します。
参考:Excel VBA入門 その29:「配列で同じ要素が表示されてしまう」対処方法
配列のインデックス番号の変更方法:その1
Option Baseを使う
配列のインデックス番号の下限値は、処置設定では「0」です。
例えば、配列のインデックス番号に合わせてExcel表を作成する場合、「0」から始まるインデックス番号だと都合が悪いときがあります。
Option Baseステートメントを使用すると、配列の下限値を「1」に変更することができます。
以下のように記述します。
Option Base 下限値
Option Baseステートメントで使用できる下限値は、「0」か「1」のみです。
Option Baseステートメントを記述していない場合は、下限値が「0」に設定されます。
Option Baseで下限値を変更したVBAコード例
Option Base 1
Sub インデックス番号を変更する()
Dim hensu(3) As Variant
Dim i As Long
hensu(1) = "みかん"
hensu(2) = "ぶどう"
hensu(3) = "スイカ"
For i = 1 To 3
Cells(i, 1) = hensu(i)
Next i
End Sub
Option Baseステートメントは、Subよりも前に記述します。
今回の例では、インデックス番号の下限値を「1」に設定しています。
コードを実行すると以下のようになります。
For文で配列変数を使用する場合は、ption Baseステートメントを使って下限値を「1」にするだけで、コードがかなりスッキリします。
次は、インデックス番号を下限値と上限値を指定する方法を説明します。
配列のインデックス番号の変更方法:その2
Toキーワードを使う
配列のインデックス番号の「上限値と下限値」を変更する方法です。
配列変数を宣言する際に、Toを使って上限値と下限値を指定します。
記述方法は、以下のとおりです。
Dim 変数( 上限値 To 下限値 ) As データ型
例えば、インデックス番号を「2~4」に設定したい場合は、
Dim Hensu( 2 To 4 ) As Variant
のように記述します。
Toを使ってインデックス番号を変更したVBAコード例
Sub インデックス番号を変更する()
Dim hensu(2 To 4) As Variant
Dim i As Long
hensu(2) = "みかん"
hensu(3) = "ぶどう"
hensu(4) = "スイカ"
For i = 2 To 4
Cells(i, 1) = hensu(i)
Next i
End Sub
Dimを使って配列変数を宣言する際に、Toを使って上限値と下限値を設定します。
実行すると以下のとおりになります。
【まとめ】配列のインデックス番号を変更する方法
配列のインデックス番号を変更する方法として
- Option Baseステートメントを使う
- To キーワードを使う
という方法を紹介しました。
配列はいろいろな場面で使う機会がありますので、インデックス番号を変更して使いやすいようにカスタマイズしていきましょう。
コメント
[…] 参考:Excel VBA入門 その31:配列のインデックス番号を変更する方法 […]