Vlax-make-variant
- 構文
- (vlax-make-variant [value] [type])
- 機能
- バリアント データ タイプを作成する。
- 引数
-
- value : バリアント型のデータに割り当てる値。 指定しないと、バリアント型は vlax-vbEmpty タイプ(データなし)で作成される。
- type : バリアント型のタイプ。次の定数の 1 つを指定することができる。
- vlax-vbEmpty (0) データ無し(既定値)
- vlax-vbNull (1) 有効なデータが含まれない
- vlax-vbInteger (2) 整数
- vlax-vbLong (3) 長整数
- vlax-vbSingle (4) 単精度浮動小数点数
- vlax-vbDouble (5) 倍精度浮動小数点数
- vlax-vbString (8) 文字列
- vlax-vbObject (9) オブジェクト
- vlax-vbBoolean (11) 真偽値
- vlax-vbArray (8192) 配列
- 括弧内に示した整数は、定数の値を示している。CAD の将来のリリースで値が変更されたときのために、引数には整数値ではなく、定数を指定することが推奨される。
- type 引数を指定しないと、vlax-make-variant 関数は、指定された value 引数のデータ タイプに基づいて、既定のデータ タイプを割り当てる。それぞれの LISP データ タイプに割り当てられる既定のバリアント型データ タイプは、次のとおり。
- nil : vlax-vbEmpty
- :vlax-null : vlax-vbNull
- 整数 : vlax-vbLong
- 実数 : vlax-vbDouble
- 文字列 : vlax-vbString
- VLA オブジェクト : vlax-vbObject
- :vlax-true : :vlax-false vlax-vbBoolean
- バリアント : 初期値のタイプと同じ
- vlax-make-safearray : vlax-vbArray
- type 引数を指定しないと、vlax-make-variant 関数は、指定された value 引数のデータ タイプに基づいて、既定のデータ タイプを割り当てる。それぞれの LISP データ タイプに割り当てられる既定のバリアント型データ タイプは、次のとおり。
- 戻り値
- 作成されたバリアント型データ。
- サンプル
- vlax-make-variant 関数の既定を使用してバリアント型データを作成する。
(setq varnil (vlax-make-variant)) #<variant 0 >
- 既定により、初期化していない(vlax-vbEmpty)バリアント型を作成する。次のように呼び出すことにより、明示的に同じことを実現できる。
(setq varnil (vlax-make-variant nil)) #<variant 0 >
- 整数のバリアント型データを作成し、その値を 5 に設定する。
(setq varint (vlax-make-variant 5 vlax-vbInteger)) #<variant 2 5>
- 上記のコマンドで、type 引数を指定しないとどうなるかをテストする。
(setq varint (vlax-make-variant 5)) #<variant 3 5>
- データ タイプの既定により、vlax-make-variant 関数は、指定された整数値を、整数データ タイプではなく、長整数データ タイプに割り当てた。つまり、数値で作業するときは、作成するバリアント型のタイプを明示的に指定することが重要。
- 文字列に対しては type 引数を指定しなくても、期待どおりの結果になる。
(setq varstr (vlax-make-variant "ghost")) #<variant 8 ghost>
- 配列を含んだバリアント型データを作成するには、配列内のデータのタイプと一緒に、タイプに vlax-vbArray を指定する必要がある。たとえば、倍精度実数の配列を含んだバリアント型データを作成するには、まず、変数の値を倍精度の配列に設定する。
(setq 4dubs (vlax-make-safearray vlax-vbDouble '(0 . 3))) #<safearray...>
- 次に、倍精度の配列を取得し、それをバリアント型データに割り当てる。
(vlax-make-variant 4dubs) #<variant 8197 ...>
関連事項