構文
IsArray(varname)
引数 | varname | 配列かどうか調べる変数を指定 |
戻り値 | 配列 | TRUE |
配列以外 | FALSE |
IsArray関数で配列かどうか調べるサンプルコード
'■IsArray関数で配列かどうか調べる Public Sub sample_Array_IsArray() Dim arr1 As Variant Dim arr2() As String '動的配列 Dim arr3(10) As Long '静的配列 Dim arr4(10, 1) As Long '静的2次元配列 '■値がなくても配列の枠があればTrue MsgBox IsArray(arr1) '配列ではない為False MsgBox IsArray(arr2) '動的配列もTrue MsgBox IsArray(arr3) '静的配列もTrue MsgBox IsArray(arr4) '二次元配列もTrue ReDim arr2(2) arr1 = "TEST" arr2(0) = "TEST" arr3(0) = 12345 arr4(0, 0) = 12345 '■値がある場合 MsgBox IsArray(arr1) 'False MsgBox IsArray(arr2) 'True MsgBox IsArray(arr3) 'True MsgBox IsArray(arr4) 'True End Sub
その他
Excelマクロでは、あまりisArray関数は使用しないと考えます。
■理由
コードを書く本人が、配列を使うかどうかは明示的に使い分けているため、
IsArray関数を使って配列かどうかの判定が必要ないためです。無理やり使用するとなると、Variant型の変数で条件によって
配列、もしくは通常変数と切り分けるくらいでしょうか。そういった使い方はあまりしないでしょう。
コードを書く本人が、配列を使うかどうかは明示的に使い分けているため、
IsArray関数を使って配列かどうかの判定が必要ないためです。無理やり使用するとなると、Variant型の変数で条件によって
配列、もしくは通常変数と切り分けるくらいでしょうか。そういった使い方はあまりしないでしょう。
VBAで配列の判定をする場合は「配列かどうか」ではなく「動的配列の要素数がいくつなのか」もしくは「配列が空なのかどうか」を判断するケースが多いと考えます。
以下の関連記事を参考にどうぞ。
関連記事
一次元/二次元配列が空かどうか判定する【ExcelVBA】
一次元/二次元配列の要素数の最小値を取得する【Lbound関数】
一次元/二次元配列の要素数の最大値を取得する【Ubound関数】
「二次元配列を動的に行数(一次元目)を増やす」をパーツ化する【ExcelVBA】
コメント