Операторы VBA: арифметические, логические, сравнения, присвоения

Операторы VBA: арифметические, логические, сравнения, присвоения

Оператор — это наименьшая способная выполняться единица кода VBA. Оператор может объявлять или определять переменную, устанавливать параметр компилятора VBA или выполнять какое-либо действие в программе.

Арифметических операторов в VBA всего 7. Четыре стандартных: сложение (+), вычитание (-), умножение (*), деление (/) и еще три:

  • возведение в степень (^), например 2^3 = 8;
  • целочисленное деление (\). Делит первое число на второе, отбрасывая (не округляя) дробную часть. Например, 5\2 = 2;
  • деление по модулю (Mod). Делит первое число на второе, возвращая только остаток от деления. Например, 5 Mod 2 = 1.

Оператор присвоения в VBA — знак равенства. Можно записывать так: Let nVar = 10

а можно еще проще: nVar = 10

Во втором случае не путайте знак равенства с оператором равенства.

Выражение nVar = 10 значит «присвоить переменной nVar значение 10», а если строка выглядит так:

If (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. В этом шаблоне можно использовать специальные подстановочные символы

 Подстановочные символы для оператора LIKE

Подстановочный символ

Значение

#

Любая цифра (только одна) от 0 до 9

*

Любое количество любых символов (включая нулевое)

?

Любой символ (только один)

[a,b,c]

Любой символ (только один) из приведенного списка

[!a,b,c]

Любой символ (только один), кроме приведенных в списке

Очень часто при проверке нескольких условий используются логические операторы:

  • 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *