Лабораторная работа: Пользовательские функции рабочего листа Visual Basic
Функция пользователя
Пользователь может создать собственную функцию в стандартном модуле редактора VBA.
Для вызова редактора VBA задайте команду Сервис - Макрос - Редактор Visual Basic или нажмите комбинацию клавиш Alt+F11. В результате пользователь попадает в интегрируемую среду приложений IDE редактора Visual Basic. Она имеет стандартный вид для Windows-приложений:
строка меню,
панель инструментов (в данном случае Standart),
два окна Project – VBAProject и Properties.
В окне Project – VBAProject отображается реестр модулей и форм, входящих в создаваемый проект.
Модуль - это лист (не путать с рабочим листом), в котором набирается код.
Двойным щелчком на значке модуля в окне Project – VBAProject можно открыть соответствующий модуль. Значок активного модуля в окне Project – VBAProject выделяется серым цветом.
В VBA у каждого рабочего листа имеется собственный модуль. Кроме того, рабочая книга обладает своим, и если в проекте создаются пользовательские формы, то каждая из них имеет по модулю. В проекте также можно добавлять модули классов для описания создаваемых пользовательских классов (эти модули будут рассмотрены позже). Единый модуль, который нам необходим, - это стандартный модуль. Для того чтобы его добавить в проект, выберите команду Insert-Module.
Структура кода функции пользователя
В окне стандартного модуля с клавиатуры набирается текст процедуры - функции пользователя. В общем случае функция пользователя имеет следующую структуру:
Function имя_функции (список_аргументов)
[инструкции]
End Function
где
имя_функции – имя создаваемой функции, придуманное пользователем;
список_аргументов – список аргументов;
инструкции – это последовательность команд, выполняемых при нахождении значения функции. В совокупности они образуют тело функции.
Важная особенность функции пользователя заключается в том, что носителем возвращаемого значения является ее имя (идентификатор имя_функции). Поэтому среди инструкций должна присутствовать, по крайней мере, одна, которая является оператором присваивания имени функции значения какого-либо выражения.
Примечание. Разрешается досрочный выход из функции по инструкции Exit Function. В теле функции может располагаться несколько инструкций Exit Function.
Пример 1. Создание функции пользователя
Рассмотрим построение простой функции, которая возвращает стоимость товара по его стоимости без НДС и значению ставки НДС.
Вызовите редактор VBA командой Сервис - Макрос - Редактор Visual Basic или комбинацией клавиш Alt+F11. Добавьте в проект стандартный модуль командой Insert - Module. В окне модуля наберите код, представленный в листинге 1.
Листинг 1. Пользовательская функция определения стоимости товара
Function Стоимость (СтоимостьБезНДС, НДС)
Стоимость = СтоимостьБезНДС * (1 + НДС / 100)
End Function
--> ЧИТАТЬ ПОЛНОСТЬЮ <--