Посмотрите на код листинга 6.3: оператор If переводит баллы, полученные студентами при выполнении тестов, в пятибалльную систему оценок.
Листинг 6.3. Применение оператора If для случая многих исходов
1: If Range(“A3”) >= 90 Then
2: MsgBox “Вы получили за тесты оценку 5”
3: ElseIf Range(“A3”) < 90 And Range (“A3”) >= 80 Then
4: MsgBox “Вы получили за тесты оценку 4”
5: ElseIf Range(“A3”) < 80 And Range (“A3”) >= 70 Then
6: MsgBox “Вы получили за тесты оценку 3”
7: ElseIf Range(“A3”) < 70 And Range (“A3”) >= 60 Then
8: MsgBox “Вы получили за тесты оценку 2”
9: Else
10: MsgBox “Вы не прошли тесты”
11: End If
Этот оператор содержит множество выражений ElseIf и труден для восприятия. В подобных случаях альтернативой оператору If может быть оператор Select Case, который легче для восприятия и лучше приспособлен для работы в ситуациях со многими исходами. Листинг 6.4 содержит код с оператором Select Case, выполняющий ту же задачу, что и код листинга 6.3.
Листинг 6.4. Пример оператора Select Case
1: Select Case Range(“A3”)
2: Case Is >= 90
3: MsgBox “Вы получили 5!”
4: Case 80 To 89
5: MsgBox “Вы получили 4”
6: Case 70 To 79
7: MsgBox “Вы получили 3”
8: Case 60 To 69
9: MsgBox “Вы получили 2”
10: Case Else
11: MsgBox “Вы не прошли тесты”
12: End Select
Вы видите, что этот код более понятен и прост для восприятия. Синтаксис оператора Select Case следующий:
Select Case тестовое_выражение
[Case список_выражений-n
[операторы-n]]...
[Саse Else
[операторы]]
End Select
Листинг 6.5 показывает другой пример использования оператора Select Case. Обратите внимание, что когда отдельные значения разделены запятыми, то это эквивалентно применению логического оператора Or (Или). Например, выражение Case “Техас”, “Флорида”интерпретируется оператором Select Case как Техас или Флорида.
Листинг 6.5. Еще пример оператора Select Case
1: 'Оператор Select Case определяет стоимость отправки грузов
2: 'в зависимости от регионов
3: Select Case State
4: Case “Нью-Йорк”
5: cShipping = 5.00
6: Case “Джорджия”, “Южная Каролина”, “Огайо”
7: cShipping = 4.00
8: Case “Флорида”, “Техас”
9: cShipping = 3.00
10: Case “Алабама”, “Вашингтон”, “Калифорния”, “Иллинойс”
11: cShipping = 2.00
12: Case Else
13: cShipping = 1.00
14: End Select
Для применения в операторе Select Case операторов сравнения необходимо использовать ключевые слова Is и То. Ключевое слово Is используется тогда, когда необходимо сравнить тестовое_выражение со значениями список_выражений. Ключевое слово Tо служит для задания интервала значений, как это сделано в листинге 6.4.