セーフ配列の要素にデータを格納します。
サポートされているプラットフォーム: Windows のみ
(vlax-safearray-fill var 'element-values)
タイプ: セーフ配列
セーフ配列を含んだ変数。
タイプ: リスト
配列に格納する値。配列の要素と同数の変数を指定することができます。要素数よりも少ない値しか指定しなかった場合は、残りの要素は現在の値を保持します。
多次元配列に対しての element-values 引数は、各リストが配列の次元数に一致した、リストのリストでなければなりません。
タイプ: リストまたは nil
var 引数に指定した値。
倍精度実数の 1 次元配列を作成します。
(setq sa (vlax-make-safearray vlax-vbdouble '(0 . 2))) #<safearray...>
vlax-safearray-fill 関数を使用して、配列に値を代入します。
(vlax-safearray-fill sa '(1 2 3)) #<safearray...>
配列の内容をリストします。
(vlax-safearray->list sa) (1.0 2.0 3.0)
vlax-safearray-fill 関数を使用して、配列の最初の要素を設定します。
(vlax-safearray-fill sa '(-66)) #<safearray...>
配列の内容をリストします。
(vlax-safearray->list sa) (-66.0 2.0 3.0)
配列の最初の要素だけが変更されたことに注意してください。残りの要素には影響がなく、以前それらに設定された値が保持されています。2 番目または 3 番目の要素を変更し、最初の要素はそのままにしておきたいときは、vlax-safearray-put-element 関数を使用します。
要素が 3 つしかない配列の 4 番目の要素を設定するように、vlax-safearray-fill 関数に命令します。
(vlax-safearray-fill sa '(1 2 3 4)) Error: Assertion failed: safearray-fill failed. Too many elements.
配列の要素よりも多くの要素を指定すると、vlax-safearray-fill 関数はエラーを返します。
複数次元の配列に値を割り当てるには、vlax‑safearray-fill 関数に、次元に対応する各リストからなるリストを指定します。次のコマンドは、各次元に 3 要素を含む文字列の 2 次元配列を作成します。
(setq mat2 (vlax-make-safearray vlax-vbString '(0 . 1) '(1 . 3))) #<safearray...>
vlax-safearray-fill 関数を使用して、配列に値を代入します。
(vlax-safearray-fill mat2 '(("a" "b" "c") ("d" "e" "f"))) #<safearray...>
mat2 の内容を確認するには、vlax‑safearray‑>list 関数を使用します。
(vlax-safearray->list mat2) (("a" "b" "c") ("d" "e" "f"))