vlax-variant-type (AutoLISP/ActiveX)

バリアントのデータ タイプを調べます。

サポートされているプラットフォーム: Windows のみ

構文と要素

(vlax-variant-type var)
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 関数に渡された変数にバリアント型が含まれていないので、エラーになります。