概要 - バリアント型を使用する(AutoLISP/ActiveX)

バリアント型は、さまざまなデータ タイプを返すことができる ActiveX 関数に値を渡したり、そのような ActiveX 関数から値を返してもらうために使用します。

注: AutoLISP での ActiveX のサポートは Windows のみに制限されています。

いくつかの AutoLISP 関数を使用すると、バリアント型を作成したりバリアント型を処理することができます。

vlax-make-variant 関数には、2 つの引数 valuetype を指定します。引数 value は、バリアント型に割り当てられる値です。引数 type には、バリアント型に格納されるデータのタイプを指定します。 type には、次のいずれかの定数を指定します。

注: 定数は、整数値に評価します。整数値は変更可能なため、整数ではなく、常に定数を参照してください。

たとえば、次の関数呼び出しは、整数のバリアント型を作成し、値を 5 に設定します。

(setq varint (vlax-make-variant 5 vlax-vbInteger))
#<variant 2 5>

戻り値は、バリアント型のデータ タイプ(vbInteger である 2)とバリアント型の値(5)を表します。データ タイプを vlax-make-variant 関数に指定しないと、関数は既定のタイプを割り当てます。

たとえば、次の関数呼び出しは、バリアント型を作成して値 5 を割り当てますが、データ タイプを指定していません。

(setq varint (vlax-make-variant 5))
#<variant 3 5>

既定では、vlax-make-variant 関数は、予想していたような整数ではなく、指定した整数値を長整数のデータ タイプに割り当てました。バリアント型に数値を割り当てるときは、希望のデータ タイプを明示的に指定してください。値やデータ タイプを指定しないと、vlax-make-variant 関数は初期化されない(vlax‑vbEmpty)バリアント型を割り当てます。