variante7

chiamata di procedura con passaggio parametri
modificabili in esegue con ByRef

 

Public somma As Integer

Private Sub CommandButton1_Click()
Rem chiamata di procedura con passaggio parametri
Rem modificabili in esegue con ByRef
Dim a, b, c As Integer
a = 10
b = -20
c = 30
Call esegue((a), (b), (c))
Call esegue1((a), (b), (c))
End Sub

Private Sub esegue(ByRef x As Integer, ByRef y As Integer, ByRef z As Integer)
Dim cambio As Integer
Rem visualizzo valori in sequenza contenuti in variabili passate alla procedura
ListBox1.AddItem ("tre valori in ordine " & x & " " & y & " " & z)
Rem memorizzo in cambio il valore contenuto in x
Rem assegno a x il valore contenuto in y
Rem assegno a y il valore che aveva x , contenuto in cambio
cambio = x
x = y
y = cambio

somma = x + y + z
ListBox1.AddItem (" somma con ByRef " & somma)
Rem visualizzo valori dopo che è stato eseguito lo scambio
ListBox1.AddItem (" scambiato x con y " & x & " " & y & " " & z)
End Sub

Private Sub esegue1(x As Integer, y As Integer, z As Integer)
somma = x + y + z
ListBox1.AddItem ("----------------")
ListBox1.AddItem ("somma senza ByRef " & somma)
End Sub

vedi variante7.ppt