ユーザー定義型の配列を2つ作成(同じユーザー定義)し、
片方の内容をもう片方にコピーしようとしています。
ループさせずに、1度でコピーすることは、可能でしょうか?
Type MyType
code as integer
name as string
End Type
Dim A() as MyType
Dim B() as MyType
A(1).code=1
A(1).name="太郎"
A(2).code=2
A(2).name="花子"
のようなもので、
BにAの内容をまるごとコピーしたいのです。
配列でないか、または、添え字を指定していれば
LSet
が使えますが・・・
こういう場合は、
Loopさせて、LSetを使うのが普通なのでしょうか?
よろしくお願いします。
配列の丸ごとディープコピーですよね?
vb6ならそれとなく出来ていますよ?
Option Explicit
Private Type t
a As Long
b As Long
End Type
Private Sub Form_Load()
Dim x(1 To 5) As t
Dim y() As t
x(3).a = 10
y = x
Debug.Print y(3).a
y(3).a = 20
Debug.Print x(3).a
End Sub
ガッさん、有り難うございます。
今、試してみたところ、できました。
> y = x
にすると、シャローコピーになるものだと思い込んで、
難しく考えすぎていました。
助かりました。
ツイート | ![]() |