UBound関数で配列インデックスの最大値を取得できます。
LBound関数で配列インデックスの最小値を取得できます。
配列のインデックスが1から始まる場合には、UBound関数の値がそのまま配列の要素数といえます。
それ以外の場合は、UBound関数 - LBound関数 + 1 で求められます。
下の例は要素インデックスが-1から5まである配列の要素数をポップアップしています。
ReDimの部分のインデックスの範囲を変えて試してみてください。
Sub Sample()
Dim MyArray As Variant
ReDim MyArray(-1 To 5)
MsgBox (UBound(MyArray) - LBound(MyArray) + 1)
End Sub
上のサンプルの場合、配列の要素は、-1,0,1,2,3,4,5の計7個です。