Variant型の変数は、同じひとつのものであっても、代入値に応じて状態が変化します。たとえば次ようなケースがあります。
- 初期状態のとき
- 1つの値を代入したとき
- ReDimで配列化したとき
- Array関数で複数値を代入したとき
このとき3や4ではVariant型変数は”配列”になります。配列かどうかを調べるのが「IsArray」関数です。
上記の4つのケースについて、実際のコードで試してみると次のようになります。
Dim avarArry As Variant
Debug.Print IsArray(avarArry) 'False
avarArry = 1
Debug.Print IsArray(avarArry) 'False
ReDim avarArry(10)
avarArry(0) = 1
Debug.Print IsArray(avarArry) 'True
avarArry = Array(1, 2, 3, 4, 5)
Debug.Print IsArray(avarArry) 'True
コード内のコメントに書かれているように、1つめと2つめは「False」が返されます。3つめと4つめは配列化されていますので、返り値は「True」です。
実行例:
|