Передача параметров по значению и по ссылке
В
списке формальных параметров перед
описанием параметра может быть указано
одно из ключевых слов ByValилиByRef. Эти ключевые
слова задают способ передачи параметра
– по значению или по ссылке.
Передача
параметра по значениюозначает
передачу подпрограмме копии фактического
параметра. Таким образом, переменная,
являющаяся фактическим параметром, не
изменяется, даже если подпрограмма
производит какие-либо действия с данным
параметром.
Передача
параметра по ссылкеозначает, что
переменная, являющаяся фактическим
параметром, может быть изменена
инструкциями подпрограммы.
Public
Sub ParameterByValue(ByVal x As Integer)
x
= x * 10
End
Sub
Public
Sub ParameterByReference(ByRef x As Integer)
x
= x * 10
End
Sub
Dim
n As Integer
n
= 8
ParameterByValue
n 'n = 8
ParameterByReference
n 'n = 80
В
языке VBA по умолчанию используется
способ передачи «по ссылке», что,
вообще-то, опасно, т.к. может привести к
нежелательному изменению переменных.