![]() ![]() колонтитул в word 2007, 0000002111
Функции VBA (ч.1). Понятие функции.Функция - это встроенная формула, выполняющая действия над выражениями и генерирующая какое-то значение, которое VBA вставляет в программу в том месте, где появляется имя этой функции. Не следует путать термины функция и процедура. Процедура, как правило, выполняет какую-то определенную задачу (задачи). Функция оперирует определенными данными и всегда возвращает некоторое результирующее значение. ![]() В приведенном выше листинге функция CStr преобразует значение другой функции Now (получение системной даты) в строку и результирующее значение присваивается переменной DT. Обратите внимание, что переменная ТМ автоматически преобразуется VBA к строковому типу в операторе вывода текстового сообщения на экран. Подобные "вольности" в программировании доступны далеко не во всех языках, поэтому, не стоит ими злоупотреблять, дабы не выработать вредную привычку в написании "неряшливых" программных кодов. Вы, наверное, уже обратили внимание, что некоторые функции не требуют аргументов. В вышеприведенном листинге функции Time, Now не требуют никаких аргументов, они просто возвращают текущие системное время и дату. В то же время функция CStr требует наличия аргумента. Функции, не требующие аргументов, просто вводятся в код программы. Функции, требующие ввода одного или нескольких аргументов, вводятся в код программы следующим образом: пишется название функции, а затем, в круглых скобках через запятую перечисляются значения аргументов. Тип данных значения, возвращаемого функцией, зависит от этой конкретной функции. Большинство функций возвращают значения типа Variant, String, Double, Integer. VBA может автоматически преобразовывать результат какой-либо функции в тип данных, совместимый с другими значениями в выражении, содержащем эту функцию. Все правила совместимости типов данных, рассмотренные для констант и переменных, применимы также к значениям, возвращаемым функциям.
|
Константа | Назначение |
vbAbortRetryIgnore | Отображает командные кнопки Стоп, Повтор, Пропустить |
vbApplicationModal | Для продолжения работы с приложением пользователь должен ответить на запрос диалогового окна. |
vbCritical | Отображается окно с предупредительным значком критической ошибки. |
vbDefaultButton1 vbDefaultButton2 vbDefaultButton3 vbDefaultButton4 | Номер командной кнопки в диалоговом окне являющейся кнопкой по умолчанию. |
vbExclamation | Желтый знак вопроса. Используется для отображения важной информации не требующей ответа. |
vbInformation | Отображает значок информации. Используется для отображения справочной информации. |
vbMsgBoxHelpButton | Добавляет к диалоговому окну кнопку Справка. При щелчке на этой кнопке открывается файл, который задан в аргументе HelpFile, в разделе, заданном аргументом Context. |
vbOKCancel | Отображает кнопки ОК и Отмена. |
vbOKOnly | Отображает только кнопку ОК - аналогична пропуску аргумента Buttons. |
vbQuestion | Отображает значок вопроса. Используется когда надо задать пользователю какой-то важный вопрос. |
vbRetryCancel | Отображает кнопки Повтор и Отмена. |
vbSystemModal | Диалоговое окно всегда остается впереди других окон пока не будет закрыто. |
vbYesNo | Отображает кнопки Да и Нет. |
vbYesNoCancel | Отображает кнопки Да, Нет и Отмена. |
Возвращаемые значения-константы функции MsgBox
Константа | Назначение |
vbAbort | Пользователь выбирает кнопку Стоп |
vbCancel | Пользователь выбирает кнопку Отмена |
vbIgnore | Пользователь выбирает кнопку Пропустить |
vbNo | Пользователь выбирает кнопку Нет |
vbOK | Пользователь выбирает кнопку ОК |
vbRetry | Пользователь выбирает кнопку Повтор |
vbYes | Пользователь выбирает кнопку Да |
InputBox - еще одна довольно часто используемая функция для обмена данными с пользователем.
Полный синтаксис функции InputBox следующий:
InputBox (Prompt [, Title] [, Default] [, XPos] [, YPos] [, HelpFile, Context])
Аргументы Prompt (единственный обязательный аргумент), Title, HelpFile, Context - аналогичны уже рассмотренным одноименным аргументам функции MsgBox.
Аргумент Default - строковое выражение, использующееся как значение по умолчанию для пользовательского ввода.
Аргументы XPos, YPos - любые численные выражения. Эти аргументы задают координаты вывода диалогового окна на экране монитора. XPos - горизонтальное расстояние от левого края окна. YPos - вертикальное расстояние от верхнего края окна. Оба расстояния измеряются в твипах (1 твип = 1/20 точки = 0,0007 дюйма). Следует быть внимательным при использовании этих аргументов, т.к. при их больших значениях диалоговое окно может "уехать" за пределы экрана монитора.
В качестве примера использования функции InputBox приведен нижеследующий листинг, который запрашивает пользователя ввести имя файла, и предлагает имя по умолчанию.
При вызове InputBox можно использовать именованные аргументы.
Нельзя смешивать именованные аргументы с обычным списком аргументов в одном и том же вызове функции.