IsArray関数

 VBAで使用できる関数です。
 指定した値(変数)が配列かどうかをブール型の値(TrueまたはFalse)で返します。

使用例

例1

コード
 4種類の変数に対して値を代入し、各変数及びその要素について配列かどうかを判定しています。
 変数cについては各要素にArray関数を代入していることに注意してください。

Sub Func_IsArray()

    Dim a As Variant
    Dim b(2) As Integer
    Dim c(2) As Variant
    Dim d As String

    a = Array(1, 2, 3)                ' a : Variant型変数に配列を代入
    b(0) = 1: b(1) = 2: b(2) = 3      ' b : String型配列の各要素に数値を代入
    c(0) = Array(1, 2, 3): c(1) = Array(4, 5): c(2) = Array(6, 7, 8, 9)
                                      ' c : Variant型変数の各要素に配列を代入
    d = "こんにちは"                  ' d : String型の普通の文字列

    MsgBox "a      : " & IsArray(a) & vbCrLf & _
           "a(0)   : " & IsArray(a(0)) & vbCrLf & _
           "b      : " & IsArray(b) & vbCrLf & _
           "b(0)   : " & IsArray(b(0)) & vbCrLf & _
           "c      : " & IsArray(c) & vbCrLf & _
           "c(0)   : " & IsArray(c(0)) & vbCrLf & _
           "c(0)(0): " & IsArray(c(0)(0)) & vbCrLf & _
           "d      : " & IsArray(d)

End Sub

出力
 変数aは配列ですのでTrueとなります。しかしaの各要素は配列ではないのでa(0)はFalseとなります。
 変数cは配列ですのでTrueとなります。その要素であるc(0)もArray関数により配列を代入したものですのでTrueとなります。しかしc(0)の各要素は配列ではないのでc(0)(0)はFalseとなります。
f:id:accs2014:20190208050813p:plain:left:w200

例2

コード
 配列宣言しただけの変数を評価するケースです。

Sub Func_IsArray()

    Dim a() As Variant      ' a : 動的な配列宣言
    Dim b(2) As Variant     ' b : 静的な配列宣言

    MsgBox "a : " & IsArray(a) & vbCrLf & _
           "b : " & IsArray(b) & vbCrLf & _
           "b(0) : " & IsArray(b(0))

End Sub

出力
 a、bともTrue、b(0)はFalseとなります。ちなみにbがVariant型ですのでb(0)はEmpty値です。
f:id:accs2014:20190208061535p:plain:left:w200

書式

IsArray(値)

 変数名だけでなく文字列や数値を指定することも可能です。このときは当然Falseが返されます。

備考

 -