Оператори 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

Порядок застосування операторів можна регулювати за допомогою круглих дужок.