- •Алгоритмизация и программирование на vba: основы программирования
- •Содержание
- •Лабораторная работа 1 Создание программы на vba
- •Цель работы
- •Общие сведения
- •Языки программирования
- •Объекты
- •События
- •Порядок выполнения работы
- •Содержание отчёта
- •Контрольные вопросы
- •Лабораторная работа 2 Реализация линейных алгоритмов в vba
- •Синтаксис:
- •Аргументы:
- •Инструкция DefТип
- •Константы
- •Допустимые имена
- •Инструкции vba
- •Форматирование строк программы
- •Перенос инструкции
- •Размещение инструкций в одну строку
- •Комментарии
- •Операции в vba
- •Арифметические
- •Строковые
- •Синтаксис:
- •Операции отношения
- •Логические операции.
- •Приоритеты операций
- •Встроенные функции vba
- •Математические функции
- •Функции проверки типов
- •Функции преобразования форматов
- •Синтаксис:
- •Аргументы:
- •Функции обработки строк
- •Функции времени и даты
- •Функции, возвращающие строки
- •Встроенные диалоговые окна
- •Синтаксис:
- •Аргументы:
- •Синтаксис:
- •Аргументы:
- •Работы с данными Host приложений.
- •Анализ макросов
- •Обращение к объектам.
- •Оператор «With».
- •Задание
- •Содержание отчёта
- •Контрольные вопросы
- •Пример выполнения работы Задание:
- •Текст программы:
- •Индивидуальные задания
Размещение инструкций в одну строку
Использование знака двоеточия позволяет разместить несколько операторов в одной строке. Таким образом, следующие две конструкции эквивалентны: 1. х = х + 1 у = х + 2 и 2. х = х + 1:у = х + 2
Комментарии
Работая с программой, удобно использовать комментарии – фрагменты текста программы, не являющиеся программными кодами и игнорируемые компилятором. Комментарии выполняют две важные функции:
Делают программу легко читаемой, поясняя смысл программных кодов и алгоритма.
Временно отключают фрагменты программы при отладке.
В языке VBA существуют два способа ввода комментариев:
Применение апострофа '. Его можно ставить в любом месте строки. Все символы от апострофа до конца строки будут восприниматься компилятором как комментарий.
Применение зарезервированного слова Rem.
Пример использования комментариев в тексте программы: DimaAsInteger' а — целая переменнаяDimbAsStringRemb— строковая переменная
Операции в vba
Арифметические
Арифметические операции VBAсведены в таблицу (Таблица 4).
Таблица 4. Арифметические операции.
Операция |
Описание |
[Операнд1] + [Операнд2] |
Сложение |
[Операнд1] - [Операнд2] |
Вычитание |
- [Операнд] |
Перемена знака |
[Операнд1] * [Операнд2] |
Умножение |
[Операнд1] / [Операнд2] |
Деление |
[Операнд1] \ [Операнд2] |
Целочисленное деление |
[Операнд1] Mod[Операнд2] |
Остаток от деления по модулю |
[Операнд1] ^ [Операнд2] |
Возведение в степень |
Операнды должны быть числовых подтипов, результаты операций также являются числами.
Строковые
В VBAприсутствует одна встроенная строковая операция: конкатенация (сложение) строк.
Синтаксис:
[Строка1] & [Строка2] или [Строка1] + [Строка2]
Результатом операции будет строка, образованная слиянием Строки1 и Строки2.
Для сложения строк предпочтительнее, во избежание путаницы с арифметическим сложением, применять операцию со знаком &
Операции отношения
Операции отношения или операции сравнения сведены в таблицу (Таблица 5).
Таблица 5. Операции отношения.
Операция |
Описание |
[Операнд1] < [Операнд2] |
Меньше |
[Операнд1] > [Операнд2] |
Больше |
[Операнд1] <= [Операнд2] |
Меньше или равно |
[Операнд1] >= [Операнд2] |
Больше или равно |
[Операнд1] <> [Операнд2] |
Не равно |
[Операнд1] = [Операнд2] |
Равно |
[Операнд1] Is[Операнд2] |
Сравнение двух операндов, содержащих ссылки на объекты |
[Операнд1] Like[Операнд2] |
Сравнение двух строковых выражений |
Оба операнда должны относиться к одному подтипу, результат операции будет булевского типа: True, если отношение выполняется иFalseесли не выполняется.
Логические операции.
Логические операции перечислены в таблице (Таблица 6).
Таблица 6. Логические операции.
Операция |
Описание |
[Операнд1] And[Операнд2] |
Логическое умножение |
[Операнд1] Or[Операнд2] |
Логическое сложение |
[Операнд1] Хог[Операнд2] |
Исключающее or(или) |
Not[Операнд1] |
Логическое отрицание |
[Операнд1] Imp[Операнд2] |
Логическая импликация (в настоящее время почти не используется) |
[Операнд1] Equ[Операнд2] |
Логическая эквивалентность (в настоящее время почти не используется) |
Операнды могут быть булевского или одного из числовых типов. Если операнды логических операций булевского типа, результат операции тоже будет булевского типа соответственно таблице истинности (Таблица 7). Операция Notодноместная и применяется только к Операнду1, остальные операции – двуместные. В других случаях выполняется побитовая логическая операция над двоичными представлениями операндов.
Таблица 7. Таблица истинности
Операнд1 |
Операнд2 |
And |
Or |
Xor |
Not |
Imp |
Equ |
False |
False |
False |
False |
False |
True |
False |
True |
False |
True |
False |
True |
True |
True |
True |
False |
True |
False |
False |
True |
True |
False |
False |
False |
True |
True |
True |
True |
False |
False |
False |
True |
Чаще всего логические операции используются для объединения нескольких операций сравнения. Например, если имеется несколько переменных «a», «b», «c» , каждая из которых должна быть меньше двадцати, и в программе необходимо проверить этот факт, формулируется условие (a<20)And(b<20)And(c<20) которое выполняется (результат равенTrue– истина) только в случае, когда значение каждой переменной меньше двадцати. Если хотя бы одна переменная содержит значение большее или равное двадцати, условие не выполняется и результат сравнения будет равенFalse.