VB初心者のhideです。
早速質問させてください。
現在
Dim test() as string
と宣言しています。
ReDim Test(0)
Msgbox UBound(Test) --> 0
ReDim Test(1)
Msgbox UBound(Test) --> 1
と表示されます。
しかし、ReDimを行わない場合
例えば...
Dim test() as string
msgbox UBound(Test) --> インデックスが有効範囲にありません
となってしまい、エラーとなります。
これって何か判断する事が出来ないのでしょうか?
ようするに、配列が1つも作成されていない場合を
知りたいのです。
例えば
if Test = Null then
Msgbox "配列が作成されていません!"
else
Msgbox "配列は" & CStr(UBound(Test)+1) & "個作成されています。"
end if
こんな風に実現できますでしょうか?
そのままでは、エラートラップで処理するか、
もしくは、SAFE配列系APIで判定するしかありません。
しかし、予め「空の配列」として初期化しておく事で、
コーディングを楽に進めることができます。
データ型によって、使用すべき関数が異なりますが、
Dim S() As String
S = Split("")
Dim V() As Variant
V = Array()
Dim O() As Object
VarType O
Dim B() As Byte
B = ""
などとする事で、要素数がゼロでありながら、LBound/UBoundを使っても、
エラーが出ないようになります。
魔界の仮面弁士さん!早々のレス有難うございます。
思っていたような処理を行う事が出来ました。
感謝!感謝!ですm(_'_)m
エラーでトラップしてたんですが
どうも美しくないので、助かりました!
ツイート | ![]() |