VBA Excel. Арифметические операторы
Рассмотрены основные операторы языка VBA, которые выполняют арифметические операции, сравнения и присвоения, или же операции по объединению строк или значений.
Оператор присваивания (=)
Оператор присваивания используется для присваивания результата выражения переменной.
Операция присваивания имеет две синтаксические формы:
Первый вариант операции присваивания использовался в ранних языках программирования Basic. Второй вариант используется в современной версии VBA.
При выполнении оператора присваивания VBA сначала вычисляет выражение справа от оператора присваивания, а затем сохраняет результат выражения в переменной, имя которой находится слева от знака равенства.
Начинающим пользователям иногда непонятен смысл последней операции присваивания, когда и в левой, и в правой частях операции стоит одна и та же переменная. В этом случае сначала в промежуточную ячейку памяти помещается результат вычисления выражения правой части оператора присваивания, а затем этот результат присваивается переменной в левой части.
Например, если в операторе присваивания А = А +5, переменная А до операции присваивания содержала значение 7, то после операции она будет содержать значение 12 (7+5).
- Можно присваивать любую численную переменную (или выражение) любой другой переменной численного типа (или переменной типа Variant);
- Если присваивается численное выражение типизированной переменной с меньшей точностью (например, Double – Long), VBA округляет значение выражения для совпадения с точностью переменной, принимающей новое значение;
- Если переменной типа String присваивается переменная типа Variant, содержащая число, VBA автоматически преобразует это число в строку.
Арифметические операции
Можно добавить два значения в выражение вместе с оператором +или вычесть одно из другого с помощью оператора-operator (Visual Basic), как показано в следующем примере.
Отрицание также использует оператор-operator (Visual Basic), но только с одним операндом, как показано в следующем примере.
При умножении и разделении используются оператор * и оператор (Visual Basic)соответственно, как показано в следующем примере.
В возведение в степень используется оператор ^, как показано в следующем примере.
Попыток деления на ноль
В подразделениях с плавающей запятой, включающих Double тип данных, исключение не создается, а результатом является член класса NaN , представляющий, PositiveInfinity или NegativeInfinity , в зависимости от делимого. В следующей таблице перечислены различные результаты попытки деления Double значения на ноль.
Тип данных делимого | Тип данных делителя | Делимое значение | Результат |
---|---|---|---|
Double | Double | 0 | NaN (не является математически определенным числом) |
Double | Double | > 0 | PositiveInfinity |
Double | Double | < 0 | NegativeInfinity |
При перехвате DivideByZeroException исключения можно использовать его члены, чтобы помочь в его обработке. Например, Message свойство содержит текст сообщения для исключения. Дополнительные сведения см. в разделе Оператор Try…Catch…Finally.
Оператор сложения (+)
Оператор сложения выполняет простое сложение. Оба операнда должны быть численными выражениями или строками, которые VBA может преобразовать в число. Оператор сложения можно также использовать для выполнения арифметических операций с данными типа Date.
Тип данных результата выражения сложения обычно тот же, что и наиболее точный тип в этом выражении. Но, есть исключения:
- Результатом сложения типа Single и Long будет Double;
- Результатом сложения типа Date с любым другим типом данных всегда будет Date;
- Если результат превышает диапазон типа Integer, то VBA преобразует его в Long;
- Если результат превышает типы Long, Single, Date, то VBA преобразует его в Double;
- Если любой операнд в выражении сложения является Null, то результатом выражения сложения также будет Null.
Следует сказать, что надо четко понимать как VBA преобразует типы данных в результате арифметических операций. Это поможет в дальнейшем избежать многих “ненужных” ошибок при написании кода.
Битовые операции
В дополнение к логическим операторам. Not Or And и Xor также выполняют побитовую арифметическую операцию при использовании числовых значений. Дополнительные сведения см. в разделе “битовые операции” в логических и побитовых операторах в Visual Basic.
Оператор деления (/)
Оператор деления с плавающей точкой выполняет обычное арифметическое деление своих операндов.
В выражениях деления первый операнд делится на второй операнд – результатом деления является частное.
Оба операнда в выражении деления с плавающей точкой должны быть численными выражениями или строками, которые VBA может преобразовать в число.
Если хотя бы один операнд в выражении деления имеет тип Null, то результат деления также будет Null.
Типом данных операции деления с плавающей точкой является Double, за исключением:
Возведение в степень (^)
Оператор возведения в степень возводит число в степень.
Оба оператора в выражении возведения в степень должны быть численными выражениями или строками, которые VBA может преобразовать в числа.
Операнд слева от оператора возведения в степень может быть отрицательным числом только, если операнд справа является целым.
Если хотя бы один операнд в выражении имеет тип Null, то результат возведения в степень также будет Null.
Урок 2 по VBA — Операторы языка
В этой статье мы рассмотрим основные операторы языка VBA, которые отвечают за арифметические операции, операции сравнения и присвоения, а также конкатенации.
[expert_bq id=»1570″]Для Word, который мы обсуждаем в первую очередь, это особенно актуально все фрагменты текста, взятые из документа, представляют собой строку. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Нормой следует считать ситуацию, когда функции передается какая-то информация, подвергающаяся анализу или обработке. В первом случае возвращается результат анализа, чаще всего логического типа (True или False). Во втором — обработанные данные.Сумма прописью в Excel. Применение функции в VBA.
- Можно присваивать любую численную переменную (или выражение) любой другой переменной численного типа (или переменной типа Variant);
- Если присваивается численное выражение типизированной переменной с меньшей точностью (например, Double – Long), VBA округляет значение выражения для совпадения с точностью переменной, принимающей новое значение;
- Если переменной типа String присваивается переменная типа Variant, содержащая число, VBA автоматически преобразует это число в строку.
Из сказанного выше понятно, что повышение удобства читаемости программного кода связано, в частности, с уменьшением числа строк текста. В этой связи хотелось бы напомнить о возможностях синтаксиса VB, о которых, как выясняется, многие программисты даже не подозревают.
Тип данных делимого | Тип данных делителя | Делимое значение | Результат |
---|---|---|---|
Double | Double | 0 | NaN (не является математически определенным числом) |
Double | Double | > 0 | PositiveInfinity |
Double | Double | < 0 | NegativeInfinity |