HTML, Excel, Word, SEOОсновы VBA ⇒ Логические операторы VBA

Логические операторы VBA


Оператор Синтаксис Описание
AND A AND B Конъюнкция: Если А и В имеют значение True, то - True. Иначе - False
OR A OR B Дизъюнкция: Если любой из операндов имеет значение True, то - True. Иначе - False
NOT NOT A Отрицание: Если А имеет значение False, то - True. Иначе - False
XOR A XOR B Исключение: Если А имеет значение True или В имеет значение True, то - True. Иначе - False
EQV A EQV B Эквивалентность: Если А имеет такое же значение что и В, то - True. Иначе - False
IMP A IMP B Импликация: Если А имеет значение True и В имеет значение False, то - False. Иначе - True

В качестве операнда для логического оператора можно использовать любое действительное выражение, имеющее результат типа Boolean, а также число, которое может быть преобразовано в значение типа Boolean.

Результатом логической операции является значение типа Boolean (или Null, если хотя бы один из операндов имеет значение Null).

Логический оператор AND

Синтаксис:
Операнд_1 AND Операнд_2


Оператор AND выполняет логическую конъюнкцию.

Результатом данной операции является значение True, только когда оба операнда имеют значение True, иначе - False.


Таблица истинности

Операнд_1 Операнд_2 Результат
True True True
True False False
False True False
False False False

Оператор AND можно использовать для нескольких операндов:


(5<7) AND (4>3) AND (5=6)   результатом будет False


Независимо от количества операндов результатом логической операции AND будет True только в том случае, когда все операнды выражения будут иметь значение True. В любом другом случае результатом будет False. Обратите внимание, что операнды заключаются в круглые скобки. VBA сначала вычисляет значение каждого операнда внутри скобок, а затем уже все выражение полностью.

Логический оператор OR

Синтаксис:
Операнд_1 OR Операнд_2


Оператор OR выполняет логическую дизъюнкцию.

Результатом данной операции является значение True, если хотя бы один из операндов имеет значение True, иначе - False.


Таблица истинности

Операнд_1 Операнд_2 Результат
True True True
True False True
False True True
False False False

Оператор OR можно использовать для нескольких операндов:


(5<7) OR (4>3) OR (5=6)   результатом будет True


Независимо от количества операндов результатом логической операции OR будет всегда True в том случае, если хотя бы один из операндов выражения будет иметь значение True. Иначе результатом будет False.

Операторы AND и OR можно комбинировать:


((5<7) AND (4>3)) OR (5=6)   результатом будет True


Логический оператор NOT

Синтаксис:
NOT Операнд


Оператор NOT выполняет логическое отрицание.

Оператор NOT использует только один операнд.


Таблица истинности

Операнд Результат
True False
False True

Операторы AND OR NOT можно комбинировать:


((5<7) AND (4>3)) OR NOT (5=6)   результатом будет True


Логический оператор XOR

Синтаксис:
Операнд_1 XOR Операнд_2


Оператор XOR выполняет логическое исключение.

Результатом данной операции является значение True, если операнды имеют разные значения, иначе - False.


Таблица истинности

Операнд_1 Операнд_2 Результат
True True False
True False True
False True True
False False False

((5<7) AND (4>3)) OR NOT (5=6) XOR (5=5)    результатом будет False


Логический оператор EQV

Синтаксис:
Операнд_1 EQV Операнд_2


Оператор EQV - это оператор логической эквивалентности.

Результатом данной операции является значение True, если операнды имеют одинаковые значения, иначе - False.


Таблица истинности

Операнд_1 Операнд_2 Результат
True True True
True False False
False True False
False False True

((5<7) AND (4>3)) OR NOT (5=6) EQV (5=5)    результатом будет True


Логический оператор IMP

Синтаксис:
Операнд_1 IMP Операнд_2


Оператор IMP выполняет логическую операцию импликации.


Таблица истинности

Операнд_1 Операнд_2 Результат
True True True
True False False
False True True
False False True

((5<7) AND (4>3)) OR NOT (5=6) IMP (5=5)    результатом будет True


Логический оператор IMP наименее интуитивно понятный из всех логических операторов. К счастью, необходимость в его применении возникает довольно редко.