Объявление функции
Для объявления функции используется общепринятый синтаксис:
[Public|Private][Static]Function name{[arglist]) [As type]
[statements] [name = expression]
[Exit Function]
[statements] [name = expression]
End Function
Public (общий) показывает, что данная функция является доступной для других процедур в других модулях рабочей книги (необязательно).
Private показывает, что данная функция доступна только для других процедур в одном и том же модуле (необязательно). При использовании ключевого слова Private функция не будет отображаться в диалоговом окне вставки функции.
Static показывает, что значения переменных, объявленные в функции, являются зарезервированными для вызовов (необязательно).
Function - ключевое слово, отображающее начало функции (обязательно).
Name может быть любым допустимым для переменной именем. Когда функция заканчивает работу, ее результатом является значение, присваиваемое имени функции (обязательно).
Arglist представляет собой список нескольких переменных, представляющих аргументы функции. Аргументы заключаются в круглые скобки. Нужно использовать запятую для разделения этих аргументов (наличие аргументов не обязательно).
Туре показывает тип данных, возвращаемых функцией (необязательно).
Statements являются полноценными VBA-операторами (необязательно).
Exit Function— это оператор, результат которого— выход из функции (необязательно).
End Function— ключевое выражение, показывающее конец работы функции (обязательно).
Выбор имени функции
Каждая функция должна иметь уникальное имя, и при выборе имени функций нужно придерживаться следующих правил:
Можно использовать символы алфавита, цифры и некоторые символы пунктуации, но первый символ обязательно должен быть буквой.
Можно использовать любую комбинацию букв верхнего и нижнего регистров.
Нельзя использовать такие имена, которые похожи на адрес ячеек рабочей книги (такие как J21). Формально можно использовать такое имя для функции, но Excel не воспримет его как функцию.
VBA не различает регистры. Для придания имени функции лучшей читабельности нужно использовать символы разных регистров (лучше написать МинимальныйЭлемент, чем минимальныйэлемент).
Нельзя использовать пробелы или точки. Для придания именам функции лучшей читабельности можно использовать символ нижнего подчеркивания (Минимальный_Элемент).
В имя функции нельзя вставлять следующие символы: #, $, %, !. Они являются символами объявления типа, которые имеют специальное назначение в VBА.
Имя функции может состоять не более чем из 255 символов.
Использование функций в формулах
Использование пользовательской VBA-функции в формулах аналогично использованию встроенных функций. Если функция находится в той же рабочей книге, что и формула, не нужно выполнять дополнительных действий. Если же они находятся в разных рабочих книгах, следует:
л
Рис. 2. ToolsReferences ибо добавить ссылку на эту книгу. Например, чтобы использовать функцию Минимальный_Элемент, объявленную в рабочей книге Мои_функции.xls, следует использовать следующую формулу: =Мои_функции.xls!Минимальный_Элемент(Al:A1000). Если вставить функцию с помощью диалогового окна вставки функции, ссылка на рабочую книгу будет вставлена автоматически.
или настроить ссылку на рабочую книгу. Это можно сделать с помощью средств редактора Visual Basic ToolsReferences (см. рис.2). Если функция объявлена в рабочей книге ссылки, имя рабочего листа использовать нет необходимости. Даже когда зависимая рабочая книга задана как ссылка, диалоговое окно вставки функции продолжит вставлять ссылку на рабочую книгу (даже если это не необходимо).
или создать надстройку. При создании надстройки в рабочей книге, в которой есть пользовательские функции, не нужно использовать ссылку на файл, чтобы использовать одну из функций в формуле; однако надстройку необходимо обязательно установить в Excel. Для создания надстройки необходимо выполнить следующие действия:
Создать функции и убедиться, что они работают надлежащим образом.
Активизировать редактор Visual Basic, выбрать рабочую книгу в окне проекта. Выберать ToolsVBAProject Properties и перейти на вкладку Protection. Установить флажок опции Lock Project for Viewing и дважды ввести пароль. Эту операцию нужно выполнить только в том случае, если вы хотите предохранить ваш макрос от вмешательства в него или в диалоговые окна постороннего пользователя.
3. Возобновить работу Excel. Выбрать команду ФайлСвойства, щелкнуть на вкладке Документ и ввести краткое описательное название в поле Название, и более длинное описание в поле Заметки.
Этот этап не обязателен, но он делает надстройку проще в использовании, отображая описательный текст в диалоговом окне подключения надстроек.
Выбрать в меню команду Файл Сохранить как.
В диалоговом окне сохранения выбрать из списка типов файла опцию Надстройка Microsoft Excel (*.xla).
Если вы не хотите использовать папку, определяемую по умолчанию, можно указать другую.
Щелкнуть на кнопке Сохранить. Копия рабочей книги будет сохранена (с расширением .xla) как надстройка, а исходная рабочая книга останется открытой.
После создания надстройки можно установить ее, используя стандартную процедуру: выбрать Сервис Надстройки и щелкнуть в появившемся диалоговом окне на кнопке Обзор. Указать расположение файла * .xla. Аргументы функций
Пользовательские функции, подобно встроенным в Excel функциям, могут изменяться в зависимости от используемых в них аргументов. при определении аргументов в VBA-функциях нужно придерживаться следующих советов:
Функция может не иметь аргументов.
Функция может иметь фиксированное количество обязательных аргументов (от 1 до 60).
Функция может содержать комбинацию обязательных и необязательных аргументов.
|