Перейти к содержимому

VBA Excel. Оператор Select Case (синтаксис, примеры)

Оператор Select Case, выполняющий одну или более групп операторов VBA Excel в зависимости от значения управляющего выражения. Синтаксис, компоненты, примеры.

  1. Описание оператора Select Case
  2. Примеры использования в VBA Excel

Описание оператора Select Case

Оператор Select Case используется в VBA Excel для управления отдельными блоками операторов в зависимости от значения управляющего выражения (переменной) и сравнительных условий, задаваемых ключевым словом Case.

Синтаксис оператора Select Case

Select Case выражение
Case условие 1
[операторы 1]
Case условие 2
[операторы 2]
-----------------
Case условие n
[операторы n]
Case Else
[операторы]
End Select

Компоненты оператора Select Case

  • выражение – любое числовое или строковое выражение, переменная;
  • условие – диапазон значений или выражение с операторами сравнения и ключевым словом Is*;
  • операторы – блок операторов VBA Excel, который выполняется при вхождении значения управляющего выражения в диапазон, заданный в условии, или при возврате выражением с операторами сравнения значения True;
  • блок операторов после ключевой фразы Case Else** выполняется в том случае, если в предыдущих условиях Case не будет найдено совпадений со значением управляющего выражения (переменной).

* Редактор VBA Excel автоматически добавляет ключевое слово Is в условия с операторами сравнения.
** Компонент Case Else с соответствующим блоком операторов необязательны, но рекомендуется их использовать для обработки непредвиденных значений управляющего выражения (переменной).

Примеры использования в VBA Excel

Пример 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

Этот пример аналогичен первому примеру из статьи VBA Excel. Функция Choose, с помощью которой и следует решать подобные задачи в VBA Excel.

Пример 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 выглядит изящней.

Добавить комментарий

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