Синтаксис VBA Проверка условий в VBA, оператор If...Then... Else

          Назад



3.4.1 Оператор If...Then... Else


Проверка условий в VBA, оператор If...Then... Else, вложенные конструкции If

Операторы условного перехода — одни из самых важных и часто используемых элементов в языках программирования. Общий принцип их работы прост: проверяется соответствие каким-то условиям (истинность или ложность каких-либо выражений) и в зависимости от этого выполнение программы направляется по одной или другой ветви. В VBA предусмотрено два оператора условного перехода: If… Then... Else и Select Case.

Оператор If… Then... Else  — самый популярный у программистов. Полный его синтаксис выглядит так:

If Условие Then
Команды1

[ElseIf Условия N Then
Команды N]

[Else
Команды2]

End If

При этом:

  • Условие — выражение, которое проверяется на истинность. Если оно истинно, то выполняются Команды1, если ложно — Команды2;
  • УсловияN — дополнительные условия, которые также можно проверить. В случае, если они выполняются (выражение УсловияN истинно), то выполняются КомандыN.

Оператор If…Then... Else применяется:

  • когда нужно проверить на соответствие одному условию и в случае соответствия сделать какое-то действие:

If nTemperature < 10 Then

MsgBox "Одеть куртку"

End If

  • когда нужно сделать то, же что и в предыдущем примере, а в случае несоответствия выполнить другое действие:

If nTemperature < 10 Then

MsgBox "Одеть куртку"

Else

MsgBox "Одеть ветровку"

End If

  • когда нужно проверить на соответствие нескольким условиям (обратите внимание на использование логических операторов):

If (nTemperature < 10) And (bRain = True) Then

MsgBox "Одеть куртку и взять зонтик"

End If

  • когда в случае, если первая проверка вернула False, нужно проверить на соответствие еще нескольким условиям (в этом случае удобно использовать ElseIf):

If (bIGoInCar = True) Then

MsgBox "Одеться для машины"

ElseIf nTemperature < 10 Then

MsgBox "Одеть куртку"

Else

MsgBox "Можно идти в рубашке"

End If

В этом примере, поскольку bIGoInCar — переменная типа Boolean и сама по себе принимает значения True или False, первая строка может выглядеть так:

If bIGoInCar Then …

Некоторые замечания по использованию If…Then... Else:

  • ключевое слово Then должно находиться в одной строке с If и условием. Если вы перенесете его на следующую строку, будет выдано сообщение об ошибке;
  • если разместить команду, которую нужно выполнить при истинности проверяемого условия, на одной строке с If и Then, то End If можно не писать:

If nTemperature < 10 Then MsgBox "Одеть куртку"

  • если же вы используете несколько команд или конструкции Else/ElseIf, то End If в конце нужно писать обязательно — иначе возникнет синтаксическая ошибка.
  • для выражения If…Then настоятельно рекомендуется использовать отступы для выделения блоков команд. Иначе читать код будет трудно.
  • операторы If…Then можно вкладывать друг в друга:

If MyVar = 5 Then

MsgBox “MyVar = 5”

If MyVar = 10 Then

MsgBox “MyVar = 10”

End If

End If




Далее