Bu bölümde prosedürler arasında değişken iletme yöntemlerine bakacağız.
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