Арифметические операции в VBA: сложение, вычитание, умножение, деление и возведение в степень
Подробно рассмотрим то, как VBA выполняет такие арифметические операции, как сложение, вычитание, умножение, деление и возведение в степень, а также особые операции, такие как целочисленное деление и деление по модулю. Ниже, в таблице, представлены знаки операций, используемые при написании арифметических VBA-выражений.

Выражение — это значение либо группа значений, выражающая отдельное значение. Результат выражения — одно значение определенного типа данных. Знаки (обозначения) операций используются для действий над определенными значениями в выражениях. Для присваивания результата выражения переменной используется оператор присваивания (=), который сохраняет любое значение, представленное выражением справа от оператора присваивания в ячейке памяти, на которую ссылается переменная слева от этого оператора.
Во всех операциях приведенных ниже, оба операнда должны быть численными выражениями или строками, которые VBA может преобразовать в число.
Сложение
Знак (+) используется для выполнения операции сложения. Слагаемые должны быть численными выражениями, строками, которые VBA может преобразовать в числа либо датами, с которыми также возможны арифметические действия.
Тип данных результата выражения сложения обычно тот же, что и наиболее точный тип в этом выражении за некоторыми исключениями. Все исключения из этого правила наглядно представлены в примерах.
Вычитание
Знак (-) используется для выполнения операции вычитания, а также для обозначения отрицательных чисел (когда ставится перед переменной или выражением и означает тоже самое, что и умножение на -1). Знак минуса, который помещают перед числом для обозначения того, что число отрицательное, называют унарным минусом.
Для определения типа данных результата выражения вычитания VBA следует тем же правилам, что и для выражений, использующих знак операции сложения, но имеются два дополнительные правила.
Правило 1. Если в выражении вычитания один из операндов является типом Date, то и результат выражения будет иметь тип Date.
Правило 2. Если в выражении вычитания оба операнда являются типом Date, то результат выражения будет иметь тип Double.
Умножение
Знак (*) используется для выполнения операции умножения, результатом этой операции является произведение операндов. Для определения типа данных результата выражения умножения VBA использует те же правила, что и для выражений, использующих сложение. В выражениях умножения все переменные Variant, содержащие значения типа Date, преобразуются в численные значения.
Деление
Знак (/) используется для выполнения операции деления, этот знак называют знаком деления действительных чисел. В выражениях деления один операнд делится на другой, а результатом деления является частное.
Если любой операнд в выражении деления имеет значение Null, то результатом выражения также будет Null. Тип данных в выражениях деления действительных чисел обычно Double, но есть и исключение.
Если в выражении деления оба операнда имеют тип Integer или Single, то результат выражения деления имеет тип Single. Если результат переполняет диапазон для типа Single, то VBA преобразует его в тип Double.
Целочисленное деление
Знак (\) используется для выполнения операции целочисленного деления, при котором результатом деления всегда является целое число без дробной части. VBA не округляет частное целочисленного деления, а просто укорачивает его до целого числа, отбрасывая дробную часть.
Тип данных результата выражения целочисленного деления — либо Integer, либо Long. VBA использует наименьший тип данных, который соответствует результату выражения.
Деление по модулю
Знак (Mod) используется для выполнения операции деления по модулю. При делении по модулю выражение возвращает только остаток от деления как целое.
Доступное для понимания объяснение этой математической операции приведено на одном из форумов программистов. Приведу цитату оттуда: «представь, что есть полная 50л канистра и 3л банка. И ты начинаешь вычерпывать из канистры банкой воду (набирать можно только полную банку). 48л вычерпал, осталось 2 литра. Это и есть остаток от деления 50 на 3 по модулю.» Другими словами 50 Mod 3 возвращает 2.
Тип данных результата выражения деления по модулю — это Integer или Long. VBA использует наименьший тип, который подходит для результата выражения.
Возведение в степень
Знак (^) используется для выполнения операции возведения в степень числа или выражения. Показатель степени показывает, сколько раз число или выражение должно быть умножено на само себя.
VBA Excel. Арифметические операторы
Перед вычислением целочисленного результата или остатка от деления двух чисел делимое и делитель округляются. Причем, используется бухгалтерское округление:
- -3.5 => -4
- -2.5 => -2
- -1.5 => -2
- -0.5 => 0
- 0.5 => 0
- 1.5 => 2
- 2.5 => 2
- 3.5 => 4
Следующие строки вызовут ошибку «Division by zero» («Деление на ноль»):
Чтобы избежать ошибок, когда требуется общепринятое математическое округление, округляйте делитель и делимое с помощью оператора WorksheetFunction.Round.
Приоритет арифметических операторов
Приоритет определяет очередность выполнения математических операторов в одном выражении. Очередность выполнения арифметических операторов в VBA Excel следующая:
- «^» – возведение в степень;
- «—» – отрицание;
- «*» и «/» – умножение и деление; 1
- «\» – целочисленное деление;
- «Mod» – остаток от деления двух чисел;
- «+» и «—» – сложение и вычитание. 2
1 Если умножение и деление выполняются в одном выражении, то каждая такая операция выполняется слева направо в порядке их следования.
2 Если сложение и вычитание выполняются в одном выражении, то каждая такая операция выполняется слева направо в порядке их следования.
Для переопределения приоритета выполнения математических операторов в VBA Excel используются круглые скобки. Сначала выполняются арифметические операторы внутри скобок, затем — операторы вне скобок. Внутри скобок приоритет операторов сохраняется.
Арифметические операторы в VBA. Урок №21
Арифметические операторы в VBA принимают в качестве операндов числовые значения, выполняют с этими числами математические операции, в полном соответствии с правилами арифметики, и возвращают в качестве результата уже одно числовое значение.
В языке программирования VBA есть семь арифметических операторов.
Знаки арифметических операций VBA
| Оператор | Название | Действие |
|---|---|---|
| + | Плюс | Сложение |
| — | Минус | Вычитание |
| * | Звёздочка | Умножение |
| / | Слэш или разделить | Деление |
| \ | Обратная косая черта | Деление без остатка |
| ^ | Циркумфлекс | Возведение в степень |
| mod | – | Получение остатка от деления по модулю |
Описывать назначение и применение первых четырёх знаков (+,-,*,/) нет никакого смысла. А вот остальные знаки, мы сейчас рассмотрим. А также обсудим некоторые особенности работы с арифметическими операторами в VBA.
Операция возведения в степень (знак ^) возводит значение первого операнда выражения в степень, равную значению второго операнда.
Например, если мы напишем 3 ^ 2, то это будет читаться как «три во второй степени» и результатом выполнения вычисления будет 9.
Пример кода операции возведения в степень
Операция деления без остатка (знак \) выполняет деление целых чисел, результатом которого всегда будет целое число. Например, при обычном делении 26 на 4, результатом будет 6,5. А если поделить 26 на 4 с использованием оператора деления без остатка, то результатом будет 6. То есть наша программа отбросит остаток и выведет в качестве результата только целое число.
Пример кода операции деления без остатка
Операция получения остатка от деления по модулю выполняет деление первого операнда на второй (числа с плавающей запятой при этом округляются до целого) и возвращает в качестве результата целочисленный остаток этого деления. Например, остатком от деления 26 на 4 будет 2 потому что 26=6*4+2.
Функция Excel POWER — возвести число в степень

В этом руководстве показано, как использовать Функция Excel POWER в Excel, чтобы вычислить число в степени.
Обзор функции POWER
Функция СТЕПЕНЬ Вычисляет число в степени.
Чтобы использовать функцию POWER Excel Worksheet, выберите ячейку и введите:

(Обратите внимание, как появляются входные данные формулы)
Синтаксис и входы функции POWER:
| 1 | = МОЩНОСТЬ (число; мощность) |
количество — Число.
власть — Номер экспоненты.
Функция POWER
Функция СТЕПЕНЬ может возводить число в степень или экспоненту.
| 1 | = МОЩНОСТЬ (5,6) |

Обратите внимание, что формула возводит число 5 в шестую степень.
| 1 | 5^6 = 5 * 5 * 5 * 5 * 5 * 5 |
Функция POWER — в квадрате / кубе
Функция POWER может возвращать квадрат или куб числа.

В этом примере число возводится в его вторую (в квадрате) или третью (в кубе) степень.
Функция POWER — квадратный корень
Функция POWER может возвращать квадратный корень из числа.
| 1 | = МОЩНОСТЬ (144; 0,5) |

Квадратный корень из числа — это значение, которое при умножении само на себя возвращает число. Также можно использовать функцию SQRT, щелкните здесь, чтобы узнать больше.
Функция POWER — кубический корень
Функция СТЕПЕНЬ также может вычислять кубический корень числа.
| 1 | = СТЕПЕНЬ (64; 1/3) |

Кубический корень числа совпадает с этим числом в степени одной трети (⅓).
ВЛАСТЬ в Google Таблицах
Функция POWER работает в Google Таблицах точно так же, как и в Excel:

Дополнительные замечания
Используйте функцию POWER, чтобы возвести число в указанную степень.
= power (2,4) совпадает с 2 4
Примеры POWER в VBA
Вы также можете использовать функцию POWER в VBA. Тип:
application.worksheetfunction.power (число, мощность)
Для аргументов функции (числа и т. Д.) Вы можете либо ввести их непосредственно в функцию, либо определить переменные, которые будут использоваться вместо них.
| 1 | Application.WorksheetFunction.Power (2, 3) |
Приведенная выше инструкция вернет 2 3 = 8
Или мы можем использовать переменные в качестве параметров нашей функции VBA: