Арифметические операторы в VBA принимают в качестве операндов числовые значения, выполняют с этими числами математические операции, в полном соответствии с правилами арифметики, и возвращают в качестве результата уже одно числовое значение.
В языке программирования VBA есть семь арифметических операторов.
Знаки арифметических операций VBA
| Оператор | Название | Действие |
|---|---|---|
| + | Плюс | Сложение |
| - | Минус | Вычитание |
| * | Звёздочка | Умножение |
| / | Слэш или разделить | Деление |
| \ | Обратная косая черта | Деление без остатка |
| ^ | Циркумфлекс | Возведение в степень |
| mod | – | Получение остатка от деления по модулю |
Описывать назначение и применение первых четырёх знаков (+,-,*,/) нет никакого смысла. А вот остальные знаки, мы сейчас рассмотрим. А также обсудим некоторые особенности работы с арифметическими операторами в VBA.
Операция возведения в степень (знак ^) возводит значение первого операнда выражения в степень, равную значению второго операнда.
Например, если мы напишем 3 ^ 2, то это будет читаться как «три во второй степени» и результатом выполнения вычисления будет 9.
Пример кода операции возведения в степень
Sub myCode()
myExp = 3 ^ 2
MsgBox (myExp)
End Sub
Операция деления без остатка (знак \) выполняет деление целых чисел, результатом которого всегда будет целое число. Например, при обычном делении 26 на 4, результатом будет 6,5. А если поделить 26 на 4 с использованием оператора деления без остатка, то результатом будет 6. То есть наша программа отбросит остаток и выведет в качестве результата только целое число.
Пример кода операции деления без остатка
Sub myCode()
myDiv = 26 \ 4
MsgBox (myDiv)
End Sub
Операция получения остатка от деления по модулю выполняет деление первого операнда на второй (числа с плавающей запятой при этом округляются до целого) и возвращает в качестве результата целочисленный остаток этого деления. Например, остатком от деления 26 на 4 будет 2 потому что 26=6*4+2.
Пример кода операции получения остатка от деления
Sub myCode()
myDiv = 26 Mod 4
MsgBox (myDiv)
End Sub
Некоторые особенности арифметических операций в VBA
- При использовании в операции сложения данных типа Integer и Long, результату вычисления будет присвоен тип данных Long.
- Если в операции вычитания один из операндов имеет тип данных Date, то и результат вычисления будет иметь тип данных Date.
- Если в операции вычитания оба операнда имеют тип Date, то результат вычисления будет иметь тип данных Double.
- При использовании разных типов данных в операции умножения, результат вычисления будет иметь тип данных, который имеет наибольшую точность и соответствует одному из типов данных сомножителей.
- При делении на ноль будет получена ошибка «Run-time error '11' Division by zero» (Деление на ноль).
- Если в выражении один из операндов имеет значение Null, то результатом вычисления всего выражения тоже будет Null.
