Değişkenleri İletmek (ByRef, ByVal)

Bu bölümde prosedürler arasında değişken iletme yöntemlerine bakacağız.

ByRef, bağımsız değişkenleri iletmenin varsayılan yoludur (değişkenin kendisini iletir). Değişkenin değeri geri döndüğünde değişir. 

ByVal, değişkenin yalnızca bir kopyasını işler ve değişkenin değerini değiştirmez. Değişkenin değerini geri döndürmez.
Not: Eğer Call komutu kullanılmazsa parantez kullanmaya gerek yoktur.

Sub AnaMakro()
    
   Dim deger As Double
   Dim k As Variant

    'hücrelerden değer ve yüzde atama
    deger = Range("A8").Value
    k = Range("B8").Value
   
    If Application.WorksheetFunction.IsNumber(k) = True Then
        'eğer yüzde değeri varsa
        Call OzelMakro(deger, k)
    Else
        OzelMakro deger, 1
    End If
   
    MsgBox deger & " :sonuç"
     
End Sub

'byRef (varsayılan) ve byVal arasındaki farkı denemek için, aşağıdaki yorumlanmış kod bloğunda gördüğünüz gibi OzelMakro içindeki deger2'yi ByVal deger2 olarak değiştirin

Private Sub OzelMakro(deger2 As Double, yuzde)

    deger2 = deger2 * yuzde
    MsgBox deger2 & " :Private içi değer"
    
End Sub

'Private Sub OzelMakro(ByVal deger2, yuzde)
'
'    deger2 = deger2 * yuzde
'    MsgBox deger2 & " :Private içi değer"
'
'End Sub

Yayımlandı

kategorisi

yazarı:

Etiketler: