2通り方法はある。さて LSet を知ってますか? 時々、便利かもしれない。
'メモリーコピー
Private Type udtSample A As Integer B As Long C As String End Type Private Sub Command1_Click() Dim udtFrom As udtSample Dim udtTo As udtSample With udtFrom .A = 200 .B = 300 .C = "400" End With '構造体をコピー LSet udtTo = udtFrom With udtTo Debug.Print .A Debug.Print .B Debug.Print .C End With End Sub Private Sub Command2_Click() Dim udtFrom As udtSample Dim udtTo As udtSample With udtFrom .A = 200 .B = 300 .C = "400" End With '構造体をコピー、第3引数は Len ではなく LenB とするのが重要 Call CopyMemory(ByVal VarPtr(udtTo), ByVal VarPtr(udtFrom), LenB(udtFrom)) With udtTo Debug.Print .A Debug.Print .B Debug.Print .C End With End Sub |