4

重複の可能性:
配列が VB6 で初期化されているかどうかを確認するにはどうすればよいですか?

最初に配列を空として宣言します。

Dim ArrayVar() as Variant


'May add some data, may not
if something then 
    Redim Preserve ArrayVar(ubound(ArrayVar,1)+1)
    ArrayVar(ubound(ArrayVar,1)) = "something"
end if


'Always check size of array
if ubound(ArrayVar,1) > x

問題は、サイズを確認するときに何も追加されていない場合があることです。配列が空で、実行時エラーが発生します。で配列を宣言しようとしましたDim ArrayVar(0) as Variantが、 redim ステートメントはコンパイルされませんでした。

これを行う最良の方法は何ですか?

4

1 に答える 1

2

IsEmpty() 関数を使用できます。

次のコードを試してください。

Dim ArrayVar() As Variant

Sub x()
If IsEmpty(arrvar) Then
    ReDim ArrayVar(0)
Else
    ReDim Preserve ArrayVar(UBound(ArrayVar, 1) + 1)
    ArrayVar(UBound(ArrayVar, 1)) = "something"
End If

MsgBox UBound(ArrayVar, 1)
End Sub
于 2012-09-10T16:12:42.423 に答える