長さゼロの配列を作成する


要素の最大インデックスに-1を指定して配列を宣言すると、その配列の長さはゼロになります。-2など、-1より小さな値を指定するとコンパイルエラーになります。

Dimで長さゼロの配列を宣言することはできません。長さゼロの配列はReDimを用いて宣言する必要があります。

長さゼロの配列に対してLBound関数は0を返し、UBound関数は-1を返します。配列の長さは"最大インデックス - 最小インデックス + 1"という式で求めることができます。この式に先の値を当てはめると、"0"が得られます。

次のコードでこれまでの説明を検証できます。

Option Explicit
Main

Sub Main
    ReDim ZeroLength(-1)

    Dim Lines(3)
    Lines(0) = "Min index: " & LBound(ZeroLength)
    Lines(1) = "Max index: " & UBound(ZeroLength)
    Lines(2) = "Length: " & (UBound(ZeroLength) - LBound(ZeroLength) + 1)
    MsgBox Join(Lines, vbNewLine)
End Sub

最終更新日: 2011-10-27

戻る