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