Логические операторы
Чаще всего логические операторы используются для объединения результатов отдельных выражений сравнения, чтобы создать сложные критерии для принятия решений в процедуре, или для создания условий, при которых группа операторов должна повторяться (табл. 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.
Синтаксис:
Select Case выражение
Case условие_1
Оператор_1
Case условие_2
Оператор_2
…..
Case условие_N
Оператор_N
[Case Else
Оператор_N+1
End Select,
где выражение – любое численное или строковое выражение;
условие_1, условие_2, условие_N – (каждый) представляет список логических выражений, отделенных запятыми;
оператор_1, оператор_2, оператор_N, оператор_N+1 – (каждый) представляет один, несколько или ни одного оператора.
В Select Case можно включать столько операторов Case условия, сколько необходимо.
Примечание. Написание неоднострочных операторов в программах производится именно так (в столбец), либо редактор будет выдавать ошибку написания.
Оператор безусловного перехода всегда изменяет порядок выполнения операторов в процедуре или функции vba. При этом vba не проверяет никаких условий, а просто переходит к выполнению кода с другого места.
Оператор GoTo имеет следующий синтаксис:
GoTo метка
Метка – любое обозначение или номер строки в той же процедуре или функции, которая содержит оператор GoTo. При выполнении оператора GoTo VBA немедленно переходит к выполнению оператора в строке, определенной с помощью метки.
Пример 3. Создать программу, которая, используя инструкцию if … then, выполняет следующие действия: если переменной а присваивается значение больше нуля, то находится сумма чисел а и b, если меньше нуля, то находится произведение. Результат выводится в стандартное диалоговое окно msgbox.
Дата добавления: 2016-04-14; просмотров: 1477;