燈明ブログ

現状は小池啓仁の応援ブログ

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