• ベストアンサー

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

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

string限定ですが、 a=split("","A") とか、ありえないsplitを行うとか・・・ ubound(a)=-1になります。 ちなみに、SafeArrayAllocDescriptor は、excelやaccessのvbaでもOKです。

その他の回答 (2)

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.3

エラートラップするのが楽だと思いますけど・・・ 毎回エラートラップするのが面倒なら、 --------------------------------------- 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)
回答No.1

開発環境はVB6と仮定して "SafeArrayAllocDescriptor"API関数を利用するとか・・・

hdkoa
質問者

補足

開発環境はVB6です。 >SafeArrayAllocDescriptor ReDim Preserveすると、エラーになる? http://yaplog.jp/orator/archive/43 理由がわかりませんでした。 平易に説明できる方いらっしゃいますか?

関連するQ&A