超まとめ
VBAの配列は、インデックス番号の範囲を指定して宣言できます。
'書式 '配列名( <開始インデックス値> TO <終了インデックス数>) Sub test() 'インデックスが1~10のmyArrayを作成する Dim arrayA() ReDim arrayA(1 to 10) End Sub 'ここにブレークポイントを張って実行
よくある書き方について
よくある書き方は ReDim arrayX(10) というように”to”を書かない形式ですが、この書き方では開始インデックス値が0になります。
Sub test() 'ReDim arrayX(10)だとインデックスは0~10になる Dim arrayX() ReDim arrayX(10) End Sub 'ここにブレークポイントを張って実行
この書式は「Redim arrayX( 0 to 10)」の”0 to “を省略した形であると理解するのが良いようです。
Excel VBAでのベストプラクティス?
Excelのセルの処理を考えると配列の開始インデックス値が0なのはいろいろ面倒なので、Excelの場合は何も考えずに
Option Base 1
を設定して、開始インデックス値のデフォルトを1に変更しておくのが良いかもしれません。