小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

IsArray関数の誤解

VB6のIsArray関数は変数が配列かどうかを判断する関数です。


しかし、引数にVariant型の変数しか使えないとの誤解があるようです。
これは、他のIsなんちゃら系がほとんどVariant型であることと、某参考書までもVariant型と誤って明記されているからかも知れません。


IsArray関数は、Variant型はもちろん、文字列型、整数型でも問題なく使えます。


あと、配列をUBound関数の引数に渡す時に、配列の要素がないとエラーになります。
ですので、Dimで配列宣言した後、ReDimの0で、一つの配列要素をとるとエラーになりません。
だたし、その後の処理でインデックス0の配列の処理を特別に意識しないとなりません。

Dim strWk() As String
Dim vntWk() As Variant
Dim intWk() As Integer
Dim intWk2 As Integer
ReDim strWk(0)
ReDim vntWk(0)
ReDim intWk(0)

If IsArray(vntWk) Then
    intWk2 = UBound(vntWk)
    MsgBox "配列"
End If
If IsArray(strWk) Then
    intWk2 = UBound(vntWk)
    MsgBox "配列"
End If
If IsArray(intWk) Then
    intWk2 = UBound(vntWk)
    MsgBox "配列"
End If