Оператор Select Case, выполняющий одну или более групп операторов VBA Excel в зависимости от значения управляющего выражения. Синтаксис, компоненты, примеры.
Описание оператора Select Case
Оператор Select Case используется в VBA Excel для управления отдельными блоками операторов в зависимости от значения управляющего выражения (переменной) и сравнительных условий, задаваемых ключевым словом Case.
Синтаксис оператора Select Case
1 2 3 4 5 6 7 8 9 10 11 |
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 с операторами сравнения в условиях:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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 с заданным диапазоном в условиях:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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 выглядит изящней.
«Пример 1», 1) — что это и зачем ? Как работает ?
«Пример 1» отобразится в заголовке диалогового окна, а «1» в текстовом поле, как текст по умолчанию. Подробнее здесь…
Заголовок окна InputBox
спасибо.
слона-то я и не заметил.
Нужная фишка
не по теме
А нельзя ли сделать чтобы на почту приходило уведомление о получении ответа
Обсуждение закрыто.