End Sub
Sub ChangeName (ByRef UserName)
UserName = "Петр"
В первой строке подпрограммы ChangeName в круглых скобках набраны ключевое слово ByRef и имя переменной UserName, указывающие, что аргумент UserName будет передан в подпрограмму по ссылке. Это означает, что в подпрограмме используется сама переданная в нее переменная. В частности, в ChangeName переменной UserName присваивается новое значение Петр, которое затем возвращается в процедуру ПередачаАргументаПоСылке и выводится на экран. Обратите внимание, что в программах ПередачаАргументаПоСылке и в ChangeName использовано одно и то же имя переменной – UserName. Но делать так вовсе необязательно. Дальше мы показываем, что к тем же результатам приводит применение разных имен:
Sub ПередачаАргументаПоСсылке_РазныеПеременные ()
Dim UserName As String
UserName = "Иван"
ChangeName2 UserName
MsgBox UserName