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となります。
例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値です。
書式
IsArray(値)
変数名だけでなく文字列や数値を指定することも可能です。このときは当然Falseが返されます。
備考
-