Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Пример 40

Передача параметров

Обращение к функциям-процедурам в VBA

Лекция № 31

 

 

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

 

 

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

При передаче аргумента по значению VBA создает копию исходных данных и передает эту копию функции. Если функция изменяет значение в аргументе, передаваемом по значению, изменяется только копия данных; исходные данные не изменяются. Передача по ссылке позволяет с помощью функции изменять исходные данные, передаваемые функции посредством аргумента; передача же по значению не позволяет изменять значение исходных данных.

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

 

 

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

argl = Trim(argl)

arg2 = Trim(arg2)

Sconcat = argl & arg2

End Function

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"

End Sub

 

 

<== предыдущая лекция | следующая лекция ==>
Создание определенных пользователем функций для Excel | Пример 41
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 314; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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