変数の参照渡し、値渡し@Excel マクロ・VBA
Subプロシージャ、Functionプロシージャに変数を渡す時に、
「参照渡し」と「値渡し」があります。
ByRef:参照渡し、ByVal:値渡しです。
以下では、getByRef(変数が参照渡し)とgetByRef(変数が値渡し)を作成しています。
getByRefでは、文字列が、「ByRef」に置き換わります。
getByValでは、文字列は変わりません。
デフォルトでは、ByRefです。
Sub test()
Dim str As String
Dim i As String
'ByRef(参照渡し)で値を渡す。
str = "ByRefとByVal"
i = 1
i = getByRef(str, i)
MsgBox (str)
'ByVal(値渡し)で値を渡す。
str = "ByRefとByVal"
i = 1
i = getByVal(str, i)
MsgBox (str)
End Sub
Function getByRef(ByRef str As String, ByVal i As Integer) As Integer
str = "ByRef"
getInt = i * 2
End Function
Function getByVal(ByVal str As String, ByVal i As Integer) As Integer
str = "ByVal"
getInt = i * 2
End Function
|