Option Base というオプションがある。各モジュールの先頭に記載し、配列の開始が0か1かを指定するオプションである。指定しなければ 0 である。

Dim sVal(10) As String という配列の場合
Option Base 0 だと 11 ( 0 ~ 10 ) 個の要素
Option Base 1 だと 10 ( 1 ~ 10 ) 個の要素
となる。

通常、あまり意識しなくてもいいと思うが、使い方はプロジェクトで決めておく必要がある。

以下、私の経験則だが・・。

意識的に Option Base を 1 に設定するのは、データベースとワークシートとのデータのやりとりをする領域に対してである。
通常の場合、データベースから読み込んだデータをセルに貼り付ける場合、いったんVariant型の配列を経由させる。
理由は、読み込んだ内容を未編集でそのまま貼り付けられる場合は少なく、何らかの加工が必要になることが多いのだが、セルに貼り付けてから編集すると「遅い」ので、Variant型の配列に突っ込んで、そこで型変換なりしてから一気に書き込むのだ。ワークシートは列、行とも1から開始するので、Variant型の配列をワークシートの同じように設定しようと思うと、 Option Base を 1 とした方が分かりやすいからだ。

また、Typeなどで確保したエリアは Option Base 0 にしている。配列番号 0 は通常空けておいて、例えばアルゴリズムでソートをする際のスワップ領域にしたり、何らかのしきい値を入れておくのに使う。

ブログトップへ
ブログ内検索キーワード
 Option 配列