Оператори vba арифметичні, логічні, порівняння, присвоєння
Оператори VBA: арифметичні, логічні, порівняння, присвоєння
Оператор - це найменша здатна виконуватися одиниця коду VBA. Оператор може оголошувати або визначати змінну, встановлювати параметр компілятора VBA або виконувати будь-яку дію в програмі.
Арифметичних операторів в VBA всього 7. Чотири стандартних: додавання (+), віднімання (-), множення (*), ділення (/) і ще три:
- піднесення до степеня (^), наприклад 2 ^ 3 = 8;
- цілочисельне ділення (\). Ділить перше число на друге, відкидаючи (Не округляючи) дробову частину. Наприклад, 5 \ 2 = 2;
- розподіл по модулю (Mod). Ділить перше число на друге, повертаючи тільки залишок від ділення. Наприклад, 5 Mod 2 = 1.
Оператор присвоєння в VBA - знак рівності. Можна записувати так:
а можна ще простіше:
У другому випадку не плутайте знак рівності з оператором рівності.
значить "привласнити змінної nVar значення 10", а якщо рядок виглядає так:
то це означає "якщо значення змінної nVar дорівнює 10".
Якщо змінної потрібно призначити об'єкт, то робиться це іншими способами.
Операторів порівняння в VBA всього 8:
- рівність (=), наприклад, If (nVar = 10);
- більше, ніж та менше, ніж (> і <), например, If (nVar> 10);
- більше або дорівнює і менше або дорівнює (> = і <=), например, If (nVar>= 10);
- не дорівнює (<>), Наприклад, If (nVar<>10);
- порівняння об'єктів (Is). Визначає, посилаються об'єктні змінні на той самий об'єкт або на різні, наприклад, If (obj1 is obj2);
- подобу (Like). Порівнює строковий об'єкт з шаблоном і визначає, чи підходить шаблон.
Оператори порівняння завжди повертають true або false - true, якщо твердження істинне, і false, якщо помилково.
Трохи про порівняння строкових значень:
- при порівнянні строкових значень регістр враховується;
- прогалини в строкових значеннях також враховуються;
- при порівнянні текстових рядків на більше / менше за замовчуванням порівнюються просто двійкові коди символів - які більше або менше. Якщо потрібно використовувати той порядок, який йде в алфавіті, то можна скористатися командою
Option Compare Text
Трохи докладніше про оператор Like. Загальний його синтаксис виглядає як
Вираз1 Like Вираженіе2
При цьому Вираз1 - будь-яке текстове вираження VBA, а Вираженіе2 - шаблон, який передається оператору Like. У цьому шаблоні можна використовувати спеціальні групові символи (див. Табл. 3.1)
Табл. 3.1 Групові символи для оператора LIKE
Будь-який символ (тільки один), крім наведених у списку
Дуже часто при перевірці кількох умов використовуються логічні оператори:
- AND - логічне І, повинні бути істинними обидва умови;
- OR - логічне АБО, має бути істинним хоча б одна з умов;
- NOT - логічне заперечення, повертає TRUE, якщо умова помилкова;
- XOR - логічне виняток. У вираженні E1 XOR E2 повертає TRUE, якщо тільки E1 = TRUE або тільки E2 = TRUE, інакше - FALSE;
- EQV - еквівалентність двох виразів, повертає TRUE, якщо вони мають однакове значення;
- IMP - імплікація, повертає FALSE, якщо E1 = TRUE і E2 = FALSE, інакше - TRUE.
Пам'ятати потрібно про AND, OR, NOT, інші логічні оператори використовуються рідко.
Майже в будь-якій програмі VBA використовуються оператори конкатенації. У VBA їх два - + або . Рекомендується завжди використовувати , тому що:
- при використанні виробляється автоматичне перетворення числових значень в рядкові - немає небезпеки припуститися помилки;
- при використанні оператора + складання строкового значення зі значенням типу Null дає Null.
MsgBox "Повідомлення користувачеві" vUserName
Порядок застосування операторів можна регулювати за допомогою круглих дужок.