End Sub. Передача по ссылке и по значению

End Sub

Передача по ссылке и по значению

Передача аргументов из одной программы в другую осуществляется двумя способами — по ссылке (by reference) и по значению (by value). В первом случае передается сама переменная, поэтому ее значение в подпрограмме можно изменить. Во втором случае — только значение переменной, а не она сама, и изменить ее в вызванной подпрограмме нельзя.

Выбор способа передачи осуществляется ключевыми словами ByRef и ByVal, которые в круглых скобках указываются в описании вызываемой подпрограммы.

Примечание При отсутствии в описании аргументов ключевых слов ByRef и ByVal передача осуществляется по ссылке.

В программе ПередачаАргументаПоСылке переменная UserName передается в подпрограмму ChangeName по ссылке.

Sub ПередачаАргументаПоСылке ()

Dim UserName As String

UserName = "Иван"

ChangeName UserName

MsgBox UserName

Sub ChangeName (ByRef UserName)

UserName = "Петр"

В первой строке подпрограммы ChangeName в круглых скобках набраны ключевое слово ByRef и имя переменной UserName, указывая, что аргумент UserName будет передан в подпрограмму по ссылке. Это означает, что в подпрограмме используется сама переданная в нее переменная. В частности, в ChangeName переменной UserName присваивается новое значение Петр, которое затем возвращается в процедуру
ПередачаАргументаПоСылке и выводится на экран. Обратите внимание, что в программах ПередачаАргументаПоСылке и в ChangeName использовано одно и то же имя переменной — UserName. Но делать так вовсе не обязательно. Дальше мы показываем, что к тем же результатам приводит применение разных имен.

Sub ПередачаАргументаПоСсылке_РазныеПеременные ()

Dim UserName As String

UserName = "Иван"

ChangeName2 UserName

MsgBox UserName


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: