Оператор Like

Оператор Like дает возможность выполнять особый тип операции сравнения строк, и его можно использовать только со строками.

Оператор Like тестирует строку для определения того, совпадает ли она с заданным шаблоном.

Синтаксис:

выражение1 like выражение2,

где выражение1 – любое строковое выражение VBA;

выражение2 – строковое выражение, специально созданное для задания шаблона, который оператор Like сравнивает с выражением1.

Результатом выражения Like является True, если первый операнд (выражение1) совпадает с шаблоном во втором операнде (выражение2); иначе результатом выражения будет False. Оба операнда в этом выражении должны быть строковыми выражениями, или VBA отобразит сообщение об ошибке несовпадения типов.

Шаблон, с которым должна сравниваться строка, задается с использованием различных специальных символов. В табл. 4 содержатся методы и символы для создания образцов совпадения для оператора Like.


Таблица 4

Символы совпадения с образцом для оператора Like

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

Чаще всего логические операторы используются для объединения результатов отдельных выражений сравнения, чтобы создать сложные критерии для принятия решений в процедуре, или для создания условий, при которых группа операторов должна повторяться (табл. 5).


Таблица 5

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

Сложное (составное) выражение – это любое выражение, образованное из двух или более выражений. Приоритеты выполнения операций при вычислении сложных выражений такие же, как и в любом языке программирования.

Изменение порядка выполнения операторов

Рассмотренные операторы выполняются в линейном порядке. При использовании VBA-операторов изменение порядка выполнения операторов определяется условием или набором условий, при которых VBA выполняет ту или иную ветвь кода процедуры.

Оператор условного перехода – это структура, которая выбирает ту или иную ветвь кода процедуры на основе некоторого предопределенного условия или группы условий.

Оператор безусловного перехода – это оператор, просто изменяющий последовательность выполнения кода процедуры независимо ни от какого конкретного условия. Условный переход используется гораздо чаще, чем безусловный.

Простейшими VBA-операторами изменения порядка выполнения кода являются операторы If … Then и If … Then … Else.

Оператор If … Then позволяет выбрать единственную альтернативную ветвь кода в процедуре или функции.

Синтаксис:

If условие Then оператор(ы),

где условие – любое логическое выражение;

оператор(ы) – один, несколько или ни одного оператора VBA.


Вторая форма синтаксиса оператора If … Then называется блоком оператора if. В блоке оператора If… Then условие и операторы записываются в отдельных строках, причем заканчивается данный оператор ключевыми словами End If.

Синтаксис:

If условие Then

оператор 1

оператор 2

….

Оператор n

End If

Выбор одной из двух различных ветвей операторов в зависимости от определенного условия обеспечивает оператор

If … Then … Else

и If … Then … ElseIf.

Синтаксис однострочного оператора If … Then … Else:

If условие Then оператор1 Else оператор2,

где условие – любое допустимое логическое выражение;

операторы – один или несколько операторов VBA, которые должны находиться в одной и той же строке.


Блок операторов If … Then … Else легче читать и понимать, и поскольку можно располагать операторы в разных строках внутри блока оператора If … Then … Else, он не имеет ограничения по размеру и числу операторов, которые можно помещать в альтернативные ветви.

Синтаксис:

If условие Then

Оператор1

Else

Оператор2

End If

VBA, как и многие языки программирования, имеет условный оператор перехода для использования в случаях, когда необходимо выбирать из большего количества различных ветвей кода: оператор Select Case. Данный оператор работает во многом так же, как и оператор If. Ключевые слова Select Case используются со многими операторами Case, где каждый оператор Case проверяет появление другого условия и выполняется только одна из ветвей Case. Ветвь Case может содержать один, несколько или ни одного оператора VBA.