配列の添え字

VBAで配列を宣言する際、次のような2つの記述をよく目にします。

Dim scores(1 To 5) As Integer
Dim scores(5) As Integer

一見似たように見えるこの2つの宣言ですが、実は添え字の開始位置や要素数に違いがあります。
この記事では、その違いについて分かりやすく解説します。


1. Dim scores(1 To 5) の意味

この書き方は、添え字が 1 から始まる5個の要素を持つ配列を定義します。

Dim scores(1 To 5) As Integer

この場合、使用できるインデックスは以下の通りです。

scores(1)
scores(2)
scores(3)
scores(4)
scores(5)
  • 最小インデックス:1
  • 最大インデックス:5
  • 要素数:5個

2. Dim scores(5) の意味

こちらは、インデックスの範囲を明示していない書き方です。

Dim scores(5) As Integer

この場合の配列は、添え字が 0 から 5 までの6個の要素を持つ配列として扱われます。

scores(0)
scores(1)
scores(2)
scores(3)
scores(4)
scores(5)
  • 最小インデックス:0
  • 最大インデックス:5
  • 要素数:6個

3. 違いの比較

宣言方法添え字の範囲要素数
Dim scores(1 To 5)1 ~ 55個
Dim scores(5)0 ~ 56個

4. 実務上の注意点

  • 配列の範囲を明確にするために、1 To 5 のように範囲を明示する書き方がおすすめです。
  • Dim scores(5) のように省略すると、0から始まることに気付かず、バグの原因になることがあります。
  • チーム開発や保守性を意識する場合も、添え字の開始と終了を明示する方が安全です。

5. まとめ

配列の添え字は、宣言の仕方ひとつで大きく挙動が変わります。
とくに Dim scores(5) と書いたときは、**「0から始まって6個ある」**という仕様をしっかり理解しておくことが大切です。

安全で分かりやすいコードを書くためにも、インデックスの範囲は明示的に指定することを習慣にしましょう。

コメント

タイトルとURLをコピーしました