バリアントのデータ タイプを調べます。
サポートされているプラットフォーム: Windows のみ
(vlax-variant-type var)
タイプ: バリアント型
バリアントを含む変数。
タイプ: 整数型
var にバリアントが含まれている場合、次の数値の 1 つが返されます。
0: データ無し (vlax-vbEmpty)
1 : 有効なデータを含まない (vlax-vbNull)
2: 整数 (vlax-vbInteger)
3: 長整数 (vlax-vbLong)
4: 単精度浮動小数点数 (vlax-vbSingle)
5: 倍精度浮動小数点数(vlax-vbDouble)
8: 文字列 (vlax-vbString)
9: オブジェクト (vlax-vbObject)
11: 真偽値 (vlax-vbBoolean)
8192 + n: いずれかのデータ タイプのセーフ配列(vlax-vbArray)。たとえば、倍精度実数(vlax-vbDouble)の配列は、8197(8192+5)を返します。
var にバリアント型が含まれていない場合、エラーを返します。
バリアント型を nil に設定し、バリアント型のデータ タイプを表示します。
(setq varnil (vlax-make-variant nil)) #<variant 0 > (vlax-variant-type varnil) 0
バリアントに整数値を設定し、バリアントを明示的に整数型として定義します。
(setq varint (vlax-make-variant 5 vlax-vbInteger)) #<variant 2 5> (vlax-variant-type varint) 2
バリアントに整数値を設定し、バリアントのデータ タイプを表示します。
(setq varint (vlax-make-variant 5)) #<variant 3 5> (vlax-variant-type varint) 3
データ タイプを明示的に vlax-make-variant 関数で指定しなければ、整数を割り当てると長整数型になることに注意してください。
バリアントに文字列を設定し、バリアントのデータ タイプを表示します。
(setq varstr (vlax-make-variant "ghost")) #<variant 8 ghost> (vlax-variant-type varstr) 8
倍精度実数のセーフ配列を作成し、セーフ配列をバリアントに割り当て、バリアントのデータ タイプを表示します。
(setq 4dubs (vlax-make-safearray vlax-vbDouble '(0 . 3))) #<safearray...> (setq var4dubs (vlax-make-variant 4dubs)) #<variant 8197 ...> (vlax-variant-type var4dubs) 8197
8192 よりも大きいバリアントのデータ タイプの値は、バリアントにいずれかのタイプのセーフ配列が含まれていることを表しています。セーフ配列のデータ タイプを調べるには、戻り値から 8192 を差し引きます。この例では、8197-8192=5(vlax-vbDouble)。
変数に実数を割り当て、次に、vlax-variant-type 関数を実行してその変数のデータ タイプをチェックします。
(setq notvar 6.0) 6.0 (vlax-variant-type notvar) ; *** ERROR: bad argument type: variantp 6.0
最後の例では、vlax-variant-type 関数に渡された変数にバリアント型が含まれていないので、エラーになります。