- •Типы данных vba
- •Переменные vba
- •Имя переменной
- •Создание переменной
- •Типизированные переменные
- •Область действия переменных
- •Константы vba
- •Константы Boolean
- •Именованные константы
- •Задание типа константы
- •Внутренние константы
- •Совместимость типов данных vba
- •Преобразования численных типов
- •Преобразование строк и чисел
- •Преобразования Boolean
- •Преобразование Date
- •Арифметические операторы vba
- •Оператор вычитания (-)
- •Оператор умножения (*)
- •Оператор деления (/)
- •Деление по модулю (Mod)
- •Логические операторы vba
- •Логический оператор and
- •Логический оператор or
- •Логический оператор not
- •Логический оператор xor
- •Логический оператор eqv
- •Операторы сравнения
- •Приоритеты выполнения операций
- •Функции vba. Понятие функции.
- •Игнорирование результата функции
- •Именованные аргументы функции
- •Функция InputBox
- •Функции vba
- •Математические функции
- •Операторы ветвления vba
- •Циклы vba
- •Цикл For..Next
- •Цикл For Each..Next
- •Цикл Do .. While
- •Цикл Do .. Until
- •Цикл Do .. Loop While
- •Цикл Do .. Loop Until
- •Массивы vba
- •Объявление массивов
- •Использование массивов
- •Изменение размерности динамического массива
Игнорирование результата функции
Возвращаемое значение функции, как правило, используется в дальнейших вычислениях программы. Однако в некоторых случаях можно не использовать возвращаемое функцией значение.
Именно так используется в вышеприведенном листинге функция MsgBox, хотя здесь она используется в качестве процедуры (т.к. не использует возвращаемые значения).
В действительности же, VBA предоставляет несколько встроенных констант для определения кнопок в окне сообщения MsgBox.
Однако, результат выбора пользователя опять никаким образом не возвращается и не используется в дальнейшем коде программы. Исправим этот нюанс.
При выполнении последнего листинга VBA после ответа пользователя (который нажал на одну из трех кнопок) закрывает окно и в переменной Otvet сохраняет число, соответствующее выбранной кнопке.
Два последних примера использования MsgBox показывают важный факт, касающийся функций: опуская круглые скобки вокруг списка аргументов функции, мы тем самым игнорируем результат функции. В этом случае VBA интерпретирует вызов функции, как вызов процедуры, и не возвращает результат.
В то же время VBA запрещает игнорирование результата функции, имя которой является ключевым словом VBA (например, CStr), и тех функций, единственным назначением которых является предоставление некоторого возвращаемого значения, например, математических.
Именованные аргументы функции
Аргументы функции необходимо перечислять в определенном порядке. Так для функции MsgBox первый аргумент является сообщением для отображения, второй - это число и тип кнопок для диалогового окна, третий - заголовок диалогового окна. Об этом подсказывает всплывающее окно "Краткие сведения", появляющееся при вводе имени функции.
Аргументы функции необходимо перечислять в определенном порядке. Так для функции MsgBox первый аргумент является сообщением для отображения, второй - это число и тип кнопок для диалогового окна, третий - заголовок диалогового окна. Об этом подсказывает всплывающее окно "Краткие сведения", появляющееся при вводе имени функции.
Следует обратить внимание, что если второй (необязательный) аргумент опустить, все же необходимо включать отмечающие запятые для второго аргумента в список аргументов.
При пропуске или перестановке аргументов в списке аргументов функции можно получить ошибки несовпадения типов или, еще хуже, не получить никакой ошибки вообще. В результате программа может работать неправильно, а вам будет трудно найти причину "неисправности".
Чтобы предотвратить подобные ошибки, VBA дает возможность использования именованных аргументов функций. Обратите внимание на следующий листинг.
Обе строки имеют один и тот же результат. Первый оператор использует обычный метод перечисления аргументов, а второй - метод именованных аргументов. Причем, обратите, внимание, во втором случае порядок следования аргументов изменен. В методе именованных аргументов это допускается.
Полный синтаксис функции MsgBox следующий:
MsgBox (Prompt [, Buttons] [, Title] [, HelpFile, Context])
Единственным обязательным аргументом является аргумент Prompt, который может быть любым строковым выражением и содержит информацию, которая выводится в диалоговом окне. Все остальные аргументы - необязательные.
Аргумент Title - строка для заголовка диалогового окна.
Аргумент HelpFile - строковое выражение, содержащее имя справочного файла Windows (который уже должен быть создан).
Аргумент Context - численное выражение, указывающее раздел в справочном файле, относящийся к отображаемому диалоговому окну.
Аргумент Buttons - численное выражение, которое задает количество и тип кнопок в диалоговом окне. Также указывает кнопку по умолчанию и, содержит ли это диалоговое окно стандартные значки Windows для предупредительных сообщений и запросов пользователя.
