私はdoubleの配列のプロパティ持つ同じクラスの2つのオブジェクト(ダブルを())があり、私は次の操作を実行したいと思います:Excel VBA割り当て値または参照?
Obj1.arr_property = Obj2.arr_property
上記の値で割り当てるつもりですか参考として?参照によって、代わりに値でそれを作る方法は?
私はdoubleの配列のプロパティ持つ同じクラスの2つのオブジェクト(ダブルを())があり、私は次の操作を実行したいと思います:Excel VBA割り当て値または参照?
Obj1.arr_property = Obj2.arr_property
上記の値で割り当てるつもりですか参考として?参照によって、代わりに値でそれを作る方法は?
Set
で割り当てたものはすべて、データではなく新しい変数への参照のみをコピーします。 Set
は使用しないので、配列の参照だけでなく、配列のすべての値がコピーされます。
この場合、実際にはSet
を使用することはできません。 Set
はオブジェクトに対してのみ許可されています。配列はオブジェクトではないので、配列はあなたのやり方だけに割り当てることができます。
代入演算子=
を使用せず、関数に値を渡す場合は、少し違っています。しかし、それは別の質問です。
これは、参照ではなく値をObj1.arr_property
にコピーします。
重要なことは、宛先配列が動的/サイズ変更可能でなければならないことです。つまり、Dim arr_property(10) As Double
のようなものではなく、この形式で宣言する必要があります(Dim arr_property() As Double
)。そうしないとCan't assign to arrayエラーが発生します。
なぜ実験をしないのですか? –