Якщо у виразі використовується більше одного оператора, то обчислення значення цього виразу регламентується правилами пріоритету виконання операцій (див. таблицю нижче).
Якщо у виразі використовуються оператори, які мають однаковий пріоритет, вони виконуються послідовно, зліва направо.
Якщо вираз містить знаки операцій із різних категорій, то VBA виконує операції у наступному порядку:
- Арифметичні операції і конкатенація.
- Операції порівняння.
- Логічні операції.
Пріоритетність операторів VBA
Оператор | Назва | Пріоритет |
Арифметичні оператори та конкатенація |
||
^ | Зведення в ступінь | 1 |
*, / | Множення і ділення | 2 |
\ | Ділення без залишку | 3 |
Mod | Залишок | 4 |
+, - | Додавання і віднімання | 5 |
& | Конкатенація | 6 |
Оператори порівняння |
||
= | Дорівнює | 7 |
<> | Не дорівнює | 8 |
< | Меньше | 9 |
> | Більше | 10 |
<= | Меньше або дорівнює | 11 |
>= | Більше або дорівнює | 12 |
Like | Порівняння рядкових виразів | 13 |
Is | Перевірка ідентичності посилань на об'єкти | 14 |
Логічні оператори |
||
Not | Логічне НІ | 15 |
And | Логічне І | 16 |
Or | Логічне АБО | 17 |
Xor | Логічне виключне АБО | 18 |
Eqv | Логічна еквівалентність | 19 |
Imp | Логічна імплікація | 20 |
Оператори з меншим значенням виконуються першими.
Наприклад, у виразі 10 + 12 * 2 спочатку буде виконано множення (12 * 2 = 24), а потім додавання (10 + 24).
Для зміни пріоритетності використовують дужки.
Частина виразу вкладена у дужки обчислюється в першу чергу, незалежно від пріоритету операторів.
Наприклад, у виразі (10 + 12) * 2 спочатку буде виконано додавання (10 + 12 = 22), а потім множення (22 * 2).
У виразі може бути скільки завгодно рівнів дужок, але всі вони обов'язково мають бути парними.
Якщо дужки вкладені одна в одну, то обчислення починається з самого внутрішнього рівня.
Наприклад, у виразі ((10 + 2) * (15 - 5) - 10) * 2 спочатку буде виконано додавання 10 + 2 = 12, потім віднімання 15 - 5 = 10, потім множення 12 * 10 = 120, потім віднімання 120 - 10 = 110 і на завершення множення 110 *2 = 220.