#753 変数が配列かどうかを調べるには? VBA

Variant型の変数は、同じひとつのものであっても、代入値に応じて状態が変化します。たとえば次ようなケースがあります。
  1. 初期状態のとき
  2. 1つの値を代入したとき
  3. ReDimで配列化したとき
  4. 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」です。

実行例:
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved