- Операнды, операции, выражения в VBA
- Операции
- Операция присваивания
- Математические операции
- Оператор сложения (+)
- Оператор вычитания (-)
- Оператор умножения (*)
- Оператор деления (/)
- Целочисленное деление ()
- Деление по модулю (Mod)
- Возведение в степень (^)
- Логические операции
- Операции сравнения (отношений)
- 3.2. Операции vba
- Операции отношения (Операции сравнения)
Операнды, операции, выражения в VBA
Для выполнения вычислений и других манипуляций в VBA используются выражения. Выражение — это любая комбинация операндов или элементов данных (чисел, констант, переменных, функций и других операндов) и знаков операций.
Операнды (operands) в программировании — это объекты, над которыми выполняют определенные действия (операции).
Знаки операций — это символы, которые используют для соединения операндов в выражении.
Операции в VBA — это действия, которые производят над операндами. Знаки операций в выражении имеют свои приоритеты.
Выражения могут состоять из одного операнда, а могут состоять из комбинации операндов и знаков операций. Результатом вычисления выражения является значение, которое должно иметь допустимый в VBA тип данных.
Отметим, что в одном выражении нельзя использовать несовместимые типы данных.
Оператор — это наименьшая исполняемая единица программного кода VBA. Различают операторы выражения, операторы объявления, операторы присваивания, условные операторы и т.д. Операторы выражений — это процедуры или строка в тексте исполняемого кода программы. Операторы выражений выполняют какие-либо действия в программе.
Операции
К операциям, которые используются для записи выражений в VBA, относят:
- операции присваивания;
- математические операции;
- логические операции;
- операции сравнения (отношений);
- операции для работы со строками (строковые операции).
Операция присваивания
Когда мы в программе объявляем переменную, происходит связывание имени этой переменной с областью памяти, в которой будет храниться ее значение, которое, в свою очередь, после объявления может оказаться произвольным. Возникает необходимость присвоения переменной нужного значения, для этого используем операцию присваивания, назначающую результат вычисления выражения переменной, константе или же свойству объекта. В операции присваивания всегда используют знак равенства =.
Синтаксис данной операции имеет вид:
- Имя_Переменной – имя переменной (идентификатор);
- Символ «=» – знак операции присваивания;
- выражение – значение (число), комбинация переменных, констант, функций, связанных знаками операций.
Операция присваивания предписывает выполнить выражение, заданное в его правой части, и присвоить результат имени переменной, имя которой указано в левой части.
Для присваивания переменной ссылки на объект применяется инструкция Set. В общем случае инструкция Set имеет следующий синтаксис:
$Set objectvar = [New] objectexpression [Nothing]$
- New– ключевое слово, которое используется при создании нового экземпляра объекта;
- Nothing– позволяет освободить все системные ресурсы и ресурсы памяти, выделенные для объекта, на который имелась ссылка (т.е. она удаляет объект из памяти).
Математические операции
Математические операторы — это ничто иное, как инструкции, в которых используют математические операции.
В VBA используются следующие математические операции: сложение (+), вычитание (-), умножение (*), деление (/), деление без остатка (), остаток от деления по модулю (mod), возведение в степень (^).
При этом каждая операция имеет свой приоритет, или как его еще называют ранг. Операции 1 ранга будут иметь наивысший приоритет и в программном операторе выполнятся первыми. Операции одного ранга в выражениях выполняются согласно правил ассоциативности (слева направо или наоборот). Так операцией 1 ранга будет являться выражение, заключенное в скобки (), 2 приоритет имеет операция вызова функции, 3 – операция возведения в степень (^) и так далее, самый низший приоритет 12 имеет операция Or.
Оператор сложения (+)
С помощью этого оператора выполняют простое сложение. При этом оба операнда – это численные выражения или строки, которые можно преобразовать в число. Оператор сложения также используется при выполнении математических операций с данными типа Date.
Тип данных результата выражения сложения, как правило, такой же, как и наиболее точный тип в этом выражении. Но, встречаются и исключения:
- при сложении типов Single и Long результатом станет тип Double;
- при сложении типа Date с любым другим типом данных результат всегда будет иметь тип Date;
- при превышении результатом диапазона типа Integer, его преобразуют в тип Long;
- при превышении результатом типов Long, Single, Date, его преобразуют в тип Double;
- если любой операнд в выражении сложения будет иметь тип Null, то и результат выражения сложения также будет иметь тип Null.
Оператор вычитания (-)
Данный оператор выполняет две задачи:
- используется при вычитании одного числа из другого;
- обозначает унарный минус (это знак минус, который помещается перед отрицательным числом).
Поместить унарный минус перед переменной или выражением означает то же, что умножить это число на -1. Оба операнда в выражении вычитания должны быть численными переменными (выражениями) или строковыми выражениями, которые можно преобразовать в число. Данный оператор можно использовать для работы с датами.
VBA использует те же правила для определения типа данных результата выражения вычитания, что и для выражений, использующих оператор сложения. Но, есть дополнение: если оба операнда в выражении являются типом Date, то результат выражения будет иметь тип Double.
Оператор умножения (*)
Данный оператор перемножает два числа – результатом выражения умножения является произведение двух операндов. Оба операнда в выражении умножения должны быть численными выражениями или строками, которые можно преобразовать в число.
VBA следует тем же правилам для определения типа данных результата выражения умножения, что и для выражений, использующих оператор сложения. В выражениях умножения все переменные Variant, которые содержат значения типа Date, преобразуются в численные значения.
Оператор деления (/)
Оператор деления с плавающей точкой выполняет обычное математическое деление своих операндов. В выражениях деления первый операнд делится на второй и результатом деления является частное.
Оба операнда в выражении деления с плавающей точкой должны быть численными выражениями или строками, которые можно преобразовать в число. Если хотя бы один операнд в выражении деления будет иметь тип Null, то результат деления также будет иметь тип Null.
Типом данных операции деления с плавающей точкой является Double, за исключением случаев, когда:
- оба операнда в выражении деления имеют типы Integer или Single – результат будет иметь тип Single;
- результат выражения не переполняет диапазон значений для типа Single.
Целочисленное деление ()
Целочисленное деление отличается от деления с плавающей точкой тем, что его результатами всегда являются целые числа без дробной части, численными выражениями или строки, которые можно преобразовать в число. Перед выполнением операции целочисленного деления каждый операнд округляется до числа типа Integer или Long. VBA отбрасывает (но не округляет!) любой дробный остаток результата выражения целочисленного деления. Например, выражения 22\5 и 24\5 будут иметь один и тот же результат = 4. Если хотя бы один операнд в выражении целочисленного деления имеет тип Null, то результат деления также будет иметь тип Null.
Деление по модулю (Mod)
Деление по модулю как бы дополняет целочисленное деление. В делении по модулю выражение возвращает только остаток операции деления как целое. 22 Mod 5 = 4 24 Mod 5 = 8 25 Mod 5 = 0
Остальные свойства деления по модулю идентичны целочисленному делению.
Возведение в степень (^)
Оператор возведения в степень возводит число в степень.
Оба операнда в выражении возведения в степень должны быть численными выражениями или строками, которые можно преобразовать в числа. Операнд слева от оператора возведения в степень может быть отрицательным числом только, если операнд справа является целым.
Результат выражения имеет тип Double. Если хотя бы один операнд в выражении имеет тип Null, то результат возведения в степень также будет иметь тип Null.
Логические операции
Логические операции используются в логических выражениях. Если существует несколько условий выбора в операциях отношения, то эти операции связываются между собой логическими операциями.
Логические выражения имеют значение типа Boolean, которое принимает одно из двух логических значений: True (1) или False (0). При выполнении логических операций логическим переменным присваивается результат вычислений, указанный в правой части операторов. К логическим операциям относятся: and, or, nod, xor, eqv, imp (логическое и, или, нет, логическое исключающее или, логическая эквивалентность, логическая импликация). Например,
(9 > 8) Or (2 > 5). Результат является True (истина), так как одно из условий является True.
Операции сравнения (отношений)
В отличие от математических операций, результатом выполнения которых может быть любое значение, операция отношения может иметь только два результирующих значения – True (Истина) и False (Ложь), которые могут быть присвоены переменным типа Boolean или определенному свойству объекта. Операции отношения применяются для записи выражений условия, результатом выполнения которых являются значения True(Истина) или False(Ложь).
В операторах могут применяться с определенным синтаксисом следующие знаки операций сравнения: равенство (=), больше чем ( > ) и меньше чем (=) и меньше или равно ( > =) и меньше или равно ( > =) и меньше или равно.
3.2. Операции vba
В программах на VBA можно использовать стандартный набор операций над данными. Имеются три основных типа операций:
Операции отношения (Операции сравнения)
Знак | Значение операции | Пример |
= | Равно | 4=4 |
<> | не равно | 5<>6 |
> | Больше | 8>7 |
Меньше | 3 | |
>= | больше или равно | 9>=9 |
меньше или равно | 8 |
Операции сравнения могут давать один из двух результатов: «истина» или «ложь». Все приведенные примеры имеют значение «истина». Примеры, имеющие значение «ложь»: 5 = 6, 7> 8, 6< 3, 8>= 9. Операции сравнения работают не только с числовыми, но и с текстовыми данными. Пример: “Дом1”<> “Дом2” – истина, а “Дом” <>“Дом” – ложь. Операция сравнения двух строковых выражений в VBA обозначается знаком Like, т.е. [операнд 1] Like [операнд 2]. Применяется также операция сравнения двух операндов, содержащих ссылки на объекты, которая обозначается знаком Is, т.е.[операнд 1] Is [операнд 2]. Логические операции Наиболее часто используемыми логическими операциями являются: [операнд1] And [операнд2] – логическое умножение; [операнд1] Or [операнд2] – логическое сложение; [операнд1] Not [операнд2] – логическое отрицание. Значение логических операций And, Or и Not
Значение операндов | Значение логических операций | ||||
A | B | A And B | A Or B | Not A | |
Истина | Истина | Истина | Истина | Ложь | |
Истина | Ложь | Ложь | Истина | ||
Ложь | Истина | Ложь | Истина | Истина | |
Ложь | Ложь | Ложь | Ложь |
Другие операции В VBA часто используется операция Сложение строк. Для сложения строк допустимо использование знака +, т.е. [строка1] + [строка2], но предпочтительнее, во избежание путаницы, применять операцию со знаком &, т.е. [строка1] & [строка2]. Приоритеты операций VBA выполняет операции в соответствии с их приоритетами, что обеспечивает однозначность в трактовании выражений.
Приоритет | Операция |
1 | Вызов функции и скобки |
2 | ^ |
3 | — смена знака |
4 | *,/ |
5 | \ |
6 | Mod |
7 | +,- |
8 | >, =, , = |
9 | Not |
10 | And |
11 | Or |
12 | Xor (исключающее Or) |
13 | Equ (логическая эквивалентность…почти не используется) |
14 | Imp (логическая импликация….почти не используется) |