Оператор условного перехода, выполняющий роль ветвления программы на основании какого-либо условия.
Простейшими операторами условного перехода являются операторы If..Then; If..Then..Else.
Оператор If..Then позволяет выбирать единственную ветвь процедуры, тогда как If..Then..Else дает возможность выбирать из двух и более альтернативных ветвей кода процедуры на основе оценки того, является ли условие равным True или False.
Синтаксис If..Then
Вариант_1:
|
If Условие Then Операторы
Первый вариант требует написания оператора в одну строку, при этом в секции "Операторы" можно указывать несколько операторов, разделяя их двоеточием.
|
Вариант 2:
|
If Условие Then Операторы End If
Второй вариант позволяет указывать несколько операторов в разных строках. | Логика работы следующая: VBA сначала оценивает логическое выражение, представленное в секции " Условие "; если это логическое выражение равно True то выполняется оператор (операторы) секции " Операторы"; затем VBA продолжает выполнение кода следующего за строкой If..Then (Вариант 1) или за ключевыми словами End If (Вариант 2). Если же логическое выражение равно False, то операторы секции " Операторы" пропускаются и выполняется код, следующий за этой секцией.
Синтаксис If..Then..Else
Вариант_1:
|
If Условие Then Операторы1 Else Операторы2
Вариант требует написания оператора в одну строку, при этом в секциях Операторы1 и Операторы2 можно указывать несколько операторов, разделяя их двоеточием. |
Вариант 2:
|
If Условие Then Операторы1 Else Операторы2 End If
Вариант позволяет указывать несколько операторов в разных строках |
Логика работы следующая: VBA сначала оценивает логическое выражение, представленное в секции "Условие" ; если это логическое выражение равно True то выполняется оператор (операторы) секции "Операторы1" ; затем VBA продолжает выполнение кода следующего за строкой If..Then (Вариант 1) или за ключевыми словами End If (Вариант 2). Если же логическое выражение равно False, то выполняются операторы секции "Операторы2" .
Возможно использование нескольких условных операторов в одном блоке:
Вариант 1:
If условие1 Then
[операторы первой истиной ветви]
If условие2 Then [операторы второй истиной ветви]
....
Else
End if
Простое вложение условных операторов друг в друга
Вариант 2:
If условие1 Then
[операторы первой истиной ветви]
ElseIf условие2 Then
[операторы второй истиной ветви]
.....
Else
[операторы ложной ветви]
End If
Сложное вложение. Сначала проверяется условие1 и при True выполняются операторы первой истиной ветви, затем (если условие 1 = False) проверяется условие 2 и если оно True то выполняются операторы второй истиной ветви. Если и первое и второе условие False , то выполняются операторы ложной ветви.
|