|
Офисное программирование - Логические операторы |
Страница 9 из 51
Символы совпадения с образцом для оператора 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. Синтаксис:
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. Технология выполнения 1. В документе Операции (пример 2) выделите правой кнопкой мыши папку Modules и выполните команду: Insert + Module (рис. 6). 2. В появившемся модуле пропишите программу и запустите на выполнение.
Dim a, b, c As Integer Sub poradok() a = -5 b = 25 If a > 0 Then c = a + b MsgBox (c) End If If a < 0 Then с = a * b MsgBox (с) End If End Sub
В данной программе переменной а присвоено значение меньше нуля, следовательно, должна выполниться нижняя инструкция If (рис. 9).
Рис. 9. Результат работы при а < 0
3. Измените программу, поменяв значение а на положительное:
Dim a, b, c As Integer Sub poradok() a = 5 b = 25 If a > 0 Then c = a + b MsgBox (c) End If If a < 0 Then c = a * b MsgBox (c) End If End Sub
Примечание. Данную программу можно составить, используя полный блок инструкции If Then Else (рис. 10).
Рис. 10. Результат работы при а > 0
Dim a, b, c As Integer Sub poradok() a = 5 b = 25 If a > 0 Then c = a + b MsgBox (c) Else c = a * b MsgBox (c) End If End Sub
|
|