変数の参照渡し、値渡し@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




Copyright (C) Excelマクロ・VBAのお勉強. All Rights Reserved.