- ベストアンサー
VBの配列 IsNull, IsNuthing, ...? 用途がわかりません。
以下の場合、(1)で範囲エラーとなります。 redim a(0)とすると、a配列に1個データがあるということで、for文が実行されますが。 Redimしないまま(データが無い意味としたいので)で、このFor文をパスするには、どのように記述すればよいのでしょうか? dim a() as string '----->(2) for i=LBound(a) to UBound(a) '---->(1) msgbox(a(i)) next i
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
string限定ですが、 a=split("","A") とか、ありえないsplitを行うとか・・・ ubound(a)=-1になります。 ちなみに、SafeArrayAllocDescriptor は、excelやaccessのvbaでもOKです。
その他の回答 (2)
- dsuekichi
- ベストアンサー率64% (171/265)
エラートラップするのが楽だと思いますけど・・・ 毎回エラートラップするのが面倒なら、 --------------------------------------- Private Function IsBlankArray(a As Variant) As Boolean Dim i As Long On Error GoTo lerror i = UBound(a) IsBlankArray = False Exit Function lerror: IsBlankArray = True End Function --------------------------------------- こんな関数を作ってしまえば・・・
- unamana19
- ベストアンサー率62% (56/89)
開発環境はVB6と仮定して "SafeArrayAllocDescriptor"API関数を利用するとか・・・
補足
開発環境はVB6です。 >SafeArrayAllocDescriptor ReDim Preserveすると、エラーになる? http://yaplog.jp/orator/archive/43 理由がわかりませんでした。 平易に説明できる方いらっしゃいますか?