VBA для «чайников» (Каммингс) - страница 130

>

Else

(операторы, выполняющиеся только тогда, когда условие! = False)

End If


Следующий простой пример программного кода с использованием вложенных операторов If... Then отображает окно с поощрительным сообщением за высокие оценки и необходимый минимум часов классной работы:


>

If sngGPA > 3.5 Then

If sngUnits > 10 Then

MsgBox "Вы в поощрительном списке деканата!"

End If

End If


Использование логических операций в условиях

Использование логических операций в условных выражениях может быть более элегантной альтернативой использованию ElseIf и вложенных If ... Then, когда нужно выполнить лишь одну ветвь пути, определяемого множеством условий.

Взгляните снова на последний фрагмент программного кода из предыдущего раздела. Ту же задачу можно выполнить с помощью лишь одного оператора If... Then, как здесь:


>

If sngGPA > 3.5 And sngUnits > 10 Then

MsgBox "Вы в поощрительном списке деканата!"

End If


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


>

If sngGPA > 3.5 Then

If sngUnits > 10 Then

MsgBox "Вы в поощрительном списке декана!"

Else

MsgBox "Неплохо для прогульщика!"

End If

End If


Мне на ум приходит только одно решение, все равно требующее двух операторов

If... Then, хотя и не вложенных:


>

If sngGPA > 3.5 And sngUnits > 10 Then

MsgBox "Вы в поощрительном списке декана!"

End If

If sngGPA > 3.5 And sngUnits <= 10 Then

MsgBox " Неплохо для прогульщика!"

End If


Использование операторов Select Case

Операторы If. . .ElseIf и вложенные If. . .Then идеально подходят для принятия решений на основе проверки некоторого числа разных выражений. Если же приходится проверять одно и то же значение, сравнивая с различными выражениями, то самым подходящим обычно оказывается оператор Select Case. Синтаксис этого оператора следующий:


>

Select Case значение

Case критерий!

(операторы, выполняемые, когда значение удовлетворяет критерий!)

Case критерий2

(операторы, выполняемые, когда значение удовлетворяет критерий2)

... ' дополнительные операторы Case

Case Else ' необязательный

(операторы, выполняемые, когда значение

не удовлетворяет ни одному из приведенных критериев)

End Select


Проверка условий в операторах Select Case