ActiveX メソッドに渡される配列は、セーフ配列タイプでなければなりません。これらの配列は、誤って配列の範囲の外側で値を割り当ててデータ例外を起こすことがないため、安全です。
セーフ配列を作成するには vlax‑make‑safearray 関数を使用し、データを含むセーフ配列を作成するには vlax‑safearray‑put‑element または vlax‑safearray-fill 関数を使用します。vlax‑make‑safearray 関数には、少なくとも 2 つの引数を指定する必要があります。最初の引数には、配列に格納されるデータのタイプを指定します。データ タイプには、次のいずれかの定数を指定します。
定数は、整数値に評価します。整数値は変更可能なため、整数ではなく、常に定数を参照してください。各定数に割り当てられる現在の整数値については、vlax-make-safearray を参照してください。vlax‑make‑safearray 関数の残りの引数には、配列の各次元の上限と下限を指定します。vlax-make-safearray 関数では、1 次元または複数次元の配列を作成できます。インデックスの下限として、ゼロまたは任意の正または負の整数を指定できます。
たとえば、次の関数呼び出しは、開始インデックス 0(ゼロ)を指定して、倍精度浮動小数点数型からなる 1 次元配列を作成します。
(setq point (vlax-make-safearray vlax-vbDouble '(0 . 2))) #<safearray...>
この例で指定されている上限は 2 であるため、配列には 3 つの要素(要素 0、要素1、要素 2)が格納されます。
別の次元は、別の範囲にすることができます。たとえば、次の関数呼び出しは、文字列の 2 次元配列を作成します。最初の次元はインデックス 0 で始まり、2 つの要素が格納されます。一方、2 番目の次元はインデックス 1 で始まり 3 つの要素が格納されます。
(setq mat2 (vlax-make-safearray vlax-vbString '(0 . 1) '(1 . 3))) #<safearray...>
次の関数は、配列を操作するために使用します。