サイトについて      連絡先   検索

VBA IsArray 関数

はじめに

Excel VBA マクロの IsArray 関数を紹介します。

IsArray 関数は、指定した値が配列かどうかを判定します。

For 文などの繰り返し処理をする前のチェックなどに使用します。

構文

IsArray()
が配列のときは True を返します。それ以外のときは False を返します。

引数「配列」判定したい値を指定します。
戻り値の型ブール型 (Boolean)

解説

動的配列、静的配列、二次元配列など、配列が指定されたときは、True を返します。

それ以外の数値や文字列などが指定されたときは False を返します。

配列の要素数は関係ありません。要素数 0 の配列でも True を返します。

使用例


Dim 動的() As Integer
Dim 静的(5) As String
Dim b As Boolean

b = IsArray(動的)
Debug.Print (b) ' True

b = IsArray(静的)
Debug.Print (b) ' True

b = IsArray("あいう")
Debug.Print (b) ' False

Dim 二次元(1, 1) As Integer
b = IsArray(二次元)
Debug.Print (b) ' True

なんらかの関数の戻り値が、配列か他の値の 2 種類あるときは、IF 文で判定して配列のときだけループできます。


Dim 配列 As Variant
配列 = Array(1, 2, 3) ' 自作の配列を返す関数など

Dim v As Variant
' 配列のときだけループする
If IsArray(配列) = True Then
    For Each v In 配列
        Debug.Print (v)
    Next
End If

' 配列のときだけループする
Dim i As Integer
Dim min As Integer
Dim max As Integer
If IsArray(配列) = True Then
    min = LBound(配列)
    max = UBound(配列)
    For i = min To max
        Debug.Print (配列(i))
    Next
End If