Private Type Persona
Mujer As String
Casa As Integer
Coche As Long
Perro As Boolean
End Type
Dim Juan As Persona
Dim Pedro As Persona
Private Sub Command1_Click()
Me.Print VarPtr(Juan) & vbTab & VarPtr(Juan.Mujer) & vbTab & VarPtr(Juan.Casa) & vbTab & VarPtr(Juan.Coche) & vbTab & VarPtr(Juan.Perro)
Me.Print "La identidad de juan es, Mujer: " & Juan.Mujer & " Casa= " & Juan.Casa & " Coche: " & Juan.Coche & " Juan tiene perro: " & IIf(Juan.Perro = True, "si", "no")
Me.Print "La identidad de Pedro es, Mujer: " & Pedro.Mujer & " Casa= " & Pedro.Casa & " Coche: " & Pedro.Coche & " Pedro tiene perro: " & IIf(Pedro.Perro = True, "si", "no")
Me.Print: Me.Print "Ahora cambiamos identidad, juan será pedro, y por tanto juan ya no tendrá ni mujer ni casa ni coche..."
Call CambiarIdentidad(Pedro, Juan, True)
Me.Print VarPtr(Juan) & vbTab & VarPtr(Juan.Mujer) & vbTab & VarPtr(Juan.Casa) & vbTab & VarPtr(Juan.Coche) & vbTab & VarPtr(Juan.Perro)
Me.Print "La identidad de juan es, Mujer: " & Juan.Mujer & " Casa= " & Juan.Casa & " Coche: " & Juan.Coche & " Juan tiene perro: " & IIf(Juan.Perro = True, "si", "no")
Me.Print "La identidad de Pedro es, Mujer: " & Pedro.Mujer & " Casa= " & Pedro.Casa & " Coche: " & Pedro.Coche & " Pedro tiene perro: " & IIf(Pedro.Perro = True, "si", "no")
MsgBox "Observa los cambios... Cuando cierres este mensaje se cerrará la aplicación."
Unload Me
End Sub
Private Sub Form_Load()
Me.AutoRedraw = True
Juan.Casa = 12
Juan.Coche = 2500
Juan.Mujer = "Teresa"
Juan.Perro = True
End Sub
' p1 es la persona que recibe una nueva identidad
' p2 es la identidad que se 'ofrece'...
Private Function CambiarIdentidad(ByRef p1 As Persona, ByRef p2 As Persona, Optional ByVal Vaciarp2 As Boolean = True)
Dim p3 As Persona
If Vaciarp2 = False Then
p3 = p1
End If
p1 = p2
p2 = p3
End Function