EXCEL(2003) VBA Option Baseについて
VBAの宣言の中にOption Base というのがあります。
Option Base 1で配列の添字を1から始まるように出来るというやつです。
ところが、
例えば、「Option Baseの指定も、ReDimも無しで」
セルA1~A10を対象に
Dim A as Vriant
A=ThisWorkBook.Sheets("sheet1").Range(Cells(1, 1), Cells(10, 1)).Value
とやると何故か
A(1,1)~A(10,1)にA1~A10の値が入るようです。
この方が、配列の添字とセルの添字が一致するので良いには良いのですが、なぜ、A(0,0)~A(9,0)ではないのでしょうか?
また、
セルA2~A11を対象に
A=ThisWorkBook.Sheets("sheet1").Range(Cells(2, 1), Cells(11, 1)).Value
とやるとA(1,1)~A(10,1)にA2~A11の値が入るようです。
この場合は、配列の添字とセルの添字は当たりまえですが一致しません。
なんとなく、暗黙の設定で添字が1から始まるような気がしますが・・・
有名な下記サイトでもそういうコードの書き方をしています。
http://officetanaka.net/excel/vba/speed/s11.htm
しかし、Option Base 1や、ReDimの宣言をしているなら分かるんですが、こういう場合、暗黙に添字が1から始まるっぽい?のは信用していいのでしょうか?
試しに同じコードで頭にOption Base 1 の設定をしても動作は変わらないようです。
何故こんな事が気になるかというとVBの方ではOption Baseが廃止になったようで、VBAでもバージョン変わったら動作がおかしくなるのではないか?と思うからです。
この辺り、どういう事になっているのか、ご存知の方いらっしゃいますでしょうか?