Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Определение способа передачи аргумента




End Sub

End Function

Пример 4

 

Function Sconcat(argl As String, arg2 As String) As String

argl = Trim (argl)

arg2 = Trim (arg2)

Sconcat = argl & arg2

 

Sub Test_Sconcat()

Dim a1 As String

Dim a2 As String

a1 = " Значение a1:"

a2 = " Значение a2:"

MsgBox a1 & a2,, "До вызова Sconcat"

MsgBox Sconcat(a1, a2),, "При вызове Sconcat"

MsgBox a1 & a2,, "После вызова Sconcat"

 

 

 

Побочные результаты, вызванные изменением функцией значений в аргументах, передаваемых по ссылке, являются необязательными и в большинстве случаев – нежелательными. Они могут привести к серьезным проблемам в программах.

Для предотвращения этих последствий необходимо, чтобы функция работала с копией значения аргумента, а не с исходными данными. Можно было бы объявить локальную переменную в функции-процедуре и копировать аргумент в эту локальную переменную. Копирование значения аргумента в локальные переменные функции обычно нежелательно. Дополнительные переменные увеличивают объем памяти, необходимой для функции, и количество выполняемой программистом работы. Дополнительные переменные могут также привести в беспорядок программный код, усложняя его.

Более легкий и предпочтительный способ обеспечить работу функции только с копиями значения аргумента, а не с исходным значением – это указать VBA, что аргумент должен передаваться по значению, а не по ссылке.

Чтобы явно указать, передает VBA аргумент по значению или по ссылке, надо использовать ключевое слово ByVal (передает аргумент по значению) или ByRef (передает аргумент по ссылке) перед аргументом, для которого необходимо задать метод передачи.

 

Пример 5.

 

Function Sconcat2(ByVal argl As String, ByVal arg2 As String) As String

argl = Trim (argl)

arg2 = Trim (arg2)

Sconcat2 = argl & arg2




Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 294; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.