- •Алгоритмизация и программирование на vba: основы программирования
- •Содержание
- •Лабораторная работа 1 Создание программы на vba
- •Цель работы
- •Общие сведения
- •Языки программирования
- •Объекты
- •События
- •Порядок выполнения работы
- •Содержание отчёта
- •Контрольные вопросы
- •Лабораторная работа 2 Реализация линейных алгоритмов в vba
- •Синтаксис:
- •Аргументы:
- •Инструкция DefТип
- •Константы
- •Допустимые имена
- •Инструкции vba
- •Форматирование строк программы
- •Перенос инструкции
- •Размещение инструкций в одну строку
- •Комментарии
- •Операции в vba
- •Арифметические
- •Строковые
- •Синтаксис:
- •Операции отношения
- •Логические операции.
- •Приоритеты операций
- •Встроенные функции vba
- •Математические функции
- •Функции проверки типов
- •Функции преобразования форматов
- •Синтаксис:
- •Аргументы:
- •Функции обработки строк
- •Функции времени и даты
- •Функции, возвращающие строки
- •Встроенные диалоговые окна
- •Синтаксис:
- •Аргументы:
- •Синтаксис:
- •Аргументы:
- •Работы с данными Host приложений.
- •Анализ макросов
- •Обращение к объектам.
- •Оператор «With».
- •Задание
- •Содержание отчёта
- •Контрольные вопросы
- •Пример выполнения работы Задание:
- •Текст программы:
- •Индивидуальные задания
Приоритеты операций
VBAвыполняет операции в соответствии с их приоритетами, что обеспечивает однозначность в трактовке значений выражений. Приоритеты выполнения операций приведены в таблице (Таблица 8).
Таблица 8. Приоритеты операций.
Приоритет |
Операция |
1 |
Вызов функции и скобки |
2 |
^ |
3 |
- (смена знака) |
4 |
*, / |
5 |
\ |
6 |
Mod |
7 |
+, -, & |
8 |
>, <, >=, <=, <>, = |
9 |
Not |
10 |
And |
11 |
Or |
12 |
Xor |
13 |
Equ |
14 |
Imp |
Операции с одинаковым приоритетом выполняются слева направо.
Встроенные функции vba
Функция определяет зависимость возвращаемого значения от одного или нескольких аргументов, называемых параметрами. Тип значения функции и типы аргументов совпадают с типами данных VBAи определены в описании функции.
В VBAимеется большой набор встроенных функций и процедур, использование которых существенно упрощает программирование. Эти функции можно разбить на следующие основные категории:
Математические функции
Функции проверки типов
Функции преобразования форматов
Функции обработки строк
Функции времени и даты
Ниже рассмотрены основные функции из этих категорий.
Математические функции
Математические функции перечислены в таблице (Таблица 9).
Таблица 9. Встроенные математические функции VBA
Функция |
Возвращаемое значение |
Abs(число) |
Модуль (абсолютная величина) числа |
Atn(число) |
Арктангенс |
Cos(число) |
Косинус угла, заданного в радианах. |
Ехр (число) |
Экспонента, то есть результат возведения основания натурального логарифма в указанную степень |
Log(число) |
Натуральный логарифм |
Rnd(число) |
Случайное число из интервала [0,1). Если число меньше нуля, то Rndвозвращает каждый раз одно и то же число, используя аргумент в качестве опорного числа; если число больше нуля или аргумент опущен, то — следующее случайное число в последовательности; если число равняется нулю, то — случайное число, возвращенное при предыдущем вызове этой функции. Перед вызовом функцииRndиспользуйте инструкциюRandomizeбез аргумента |
Sgn(число) |
Знак числа. Возвращает -1, 0 или 1. |
Sin(число) |
Синус |
Sqr(число) |
Квадратный корень из числа |
Tan(число) |
Тангенс |
Fix(число) ИInt(число) |
Обе функции, IntиFix, отбрасывают дробную часть числа и возвращают целое значение. Различие между функциямиIntиFixсостоит в том, что для отрицательного значения аргумента число функцияIntвозвращает ближайшее отрицательное целое число, меньшее либо равное указанному,aFix— ближайшее отрицательное целое число, большее либо равное указанному |
Функции проверки типов
Функции проверки типов (Таблица 10) проверяют, является ли переменная выражением специфицированного типа.
Таблица 10. Функции проверки типов VBA
Функция |
Специфицированный тип |
IsArray(переменная) |
Является ли переменная массивом |
IsDate(переменная) |
Является ли переменная датой |
IsEmpty(переменная) |
Была ли переменная описана инструкцией Dim |
IsError(переменная) |
Является ли переменная кодом ошибки |
IsMissing (переменная) |
Была ли передана переменная как необязательный параметр |
IsNull(переменная) |
Является ли переменная пустым значением (Null) |
IsNumeric(переменная) |
Является ли переменная числом |
IsObject(переменная) |
Является ли переменная объектом |
Возвращаемое значение имеет булевский тип: True, если переменная имеет специфицированный тип иFalse, если не является.