Оператор Select Case
Select Case — это оператор, который позволяет упрощать код, если нужно проверить одно значение на соответствие множеству возможных случаев. Он заменяет длинные цепочки If...ElseIf... конструкцией, которая легче читается и удобнее в поддержке.
Синтаксис
✳️ выражение: любое числовое или строковое выражение, переменная.
✳️ Case: проверяемые значения или диапазоны значений, условия с ключевым словом Is.
✳️ Case Else: выполняется, если ни одно из условий не подошло.
Компонент Case Else с соответствующим кодом необязательны, но рекомендуется их использовать для обработки непредвиденных значений управляющего выражения (переменной).
Пример 1
Использование оператора Select Case с операторами сравнения в условиях:
Пример 2
Использование оператора Select Case с заданным диапазоном в условиях:
Для решения подобной задачи в VBA Excel можно использовать многострочную конструкцию оператора If…Then…Else, но решение с Select Case выглядит изящней.
Пример 3
Проверка одного значения:
#VBA #ExcelVBA #SelectCase #Case #CaseElse
Select Case — это оператор, который позволяет упрощать код, если нужно проверить одно значение на соответствие множеству возможных случаев. Он заменяет длинные цепочки If...ElseIf... конструкцией, которая легче читается и удобнее в поддержке.
Синтаксис
Select Case выражение
Case условие 1
' Код для условия 1
Case условие 2
' Код для условия 2
Case условие 3, условие 4
' Код для нескольких условий (3 и 4)
Case Else
' Код для всех других случаев
End Select
✳️ выражение: любое числовое или строковое выражение, переменная.
✳️ Case: проверяемые значения или диапазоны значений, условия с ключевым словом Is.
✳️ Case Else: выполняется, если ни одно из условий не подошло.
Компонент Case Else с соответствующим кодом необязательны, но рекомендуется их использовать для обработки непредвиденных значений управляющего выражения (переменной).
Пример 1
Использование оператора Select Case с операторами сравнения в условиях:
Sub primer1()
Dim a As Integer, b As String
a = InputBox("Введите число от 1 до 5", "Пример 1", 1)
Select Case a
Case Is = 1
b = "один"
Case Is = 2
b = "два"
Case Is = 3
b = "три"
Case Is = 4
b = "четыре"
Case Is = 5
b = "пять"
Case Else
b = "Число не входит в диапазон от 1 до 5"
End Select
MsgBox b
End Sub
Пример 2
Использование оператора Select Case с заданным диапазоном в условиях:
Sub primer2()
Dim a As Integer, b As String
a = InputBox("Введите число от 1 до 30", "Пример 2", 1)
Select Case a
Case 1 To 10
b = "Число " & a & " входит в первую десятку"
Case 11 To 20
b = "Число " & a & " входит во вторую десятку"
Case 21 To 30
b = "Число " & a & " входит в третью десятку"
Case Else
b = "число " & a & " не входит в первые три десятки"
End Select
MsgBox b
End Sub
Для решения подобной задачи в VBA Excel можно использовать многострочную конструкцию оператора If…Then…Else, но решение с Select Case выглядит изящней.
Пример 3
Проверка одного значения:
Sub CheckDay()
Dim day As String
day = "Среда"
Select Case day
Case "Понедельник"
MsgBox "Начало рабочей недели!"
Case "Среда"
MsgBox "Середина недели."
Case "Пятница"
MsgBox "Скоро выходные!"
Case Else
MsgBox "Обычный день."
End Select
End Sub
#VBA #ExcelVBA #SelectCase #Case #CaseElse