web-dev-qa-db-ja.com

配列インデックスはVB6で0ベースですか?

VB6コードのC#への自動翻訳と、コンバーターがsomeArray(3)からsomeArray[3]に翻訳したことを確認しています。ただし、古いコードドキュメントによると、翻訳版の場合のように4番目ではなく3番目の要素を選択する必要があります。

配列インデックスはVB6で0ベースですか?それとも1から始まりますか?

17
Jader Dias

はい-アレイは(一般的に)VB6ベースで0です

これに対する例外は、明示的なDim someArray(1 To 10) as Int構文が使用されている場合またはOption Base 1はコードモジュールの先頭で宣言されています。

そうではないのはCollectionsです-Collectionオブジェクトをループすると、それらは1ベースであると確信しています。

15
Jon Egerton

簡単に言えば、配列の下限はあなたが伝えるそれらであるということです。

デフォルトはベース_0_です(_Option Base 1_でオーバーライドされない限り)が、任意の値の下限を宣言できます(Dim arr(-42 To 42)は次のように有効ですDim(3))。

また、配列が何らかのオブジェクトによって返される場合、その下限はそのオブジェクトが設定するものになります。たとえば、Excel _Range.Value_参照は、_1_ベースの配列を返します。

7
chris neilsen