Наиболее важные операторы условия, используемые в Excel VBA – это операторы If … Then и Select Case. Оба этих выражения проверяют одно или несколько условий и, в зависимости от результата, выполнят различные действия. Далее мы поговорим об этих двух операторах условия подробнее.
Оператор «If … Then» в Visual Basic
Оператор If … Then проверяет условие и, если оно истинно (TRUE), то выполняется заданный набор действий. Также может быть определён набор действий, которые должны быть выполнены, если условие ложно (FALSE).
Синтаксис оператора If … Then вот такой:
If Условие1 Then
Действия в случае, если выполняется Условие1
ElseIf Условие2 Then
Действия в случае, если выполняется Условие2
Else
Действия в случае, если не выполнено ни одно из Условий
End If
В этом выражении элементы ElseIf и Else оператора условия могут не использоваться, если в них нет необходимости.
Ниже приведён пример, в котором при помощи оператора If … Then цвет заливки активной ячейки изменяется в зависимости от находящегося в ней значения:
If ActiveCell.Value < 5 Then ActiveCell.Interior.Color = 65280 'Ячейка окрашивается в зелёный цвет ElseIf ActiveCell.Value < 10 Then ActiveCell.Interior.Color = 49407 'Ячейка окрашивается в оранжевый цвет Else ActiveCell.Interior.Color = 255 'Ячейка окрашивается в красный цвет End If
Обратите внимание, что как только условие становится истинным, выполнение условного оператора прерывается. Следовательно, если значение переменной ActiveCell меньше 5, то истинным становится первое условие и ячейка окрашивается в зелёный цвет. После этого выполнение оператора If … Then прерывается и остальные условия не проверяются.
Более подробно о применении в VBA условного оператора If … Then можно узнать на сайте Microsoft Developer Network.
Оператор «Select Case» в Visual Basic
Оператор Select Case схож с оператором If … Then в том, что он также проверяет истинность условия и, в зависимости от результата, выбирает один из вариантов действий.
Синтаксис оператора Select Case вот такой:
Select Case Выражение
Case Значение1
Действия в случае, если результат Выражения соответствует Значению1
Case Значение2
Действия в случае, если результат Выражения соответствует Значению2
…
Case Else
Действия в случае, если результат Выражения не соответствует ни одному из перечисленных вариантов Значения
End Select
Элемент Case Else не является обязательным, но его рекомендуется использовать для обработки непредвиденных значений.
В следующем примере при помощи конструкции Select Case изменяется цвет заливки текущей ячейки в зависимости от находящегося в ней значения:
Select Case ActiveCell.Value Case Is <= 5 ActiveCell.Interior.Color = 65280 'Ячейка окрашивается в зелёный цвет Case 6, 7, 8, 9 ActiveCell.Interior.Color = 49407 'Ячейка окрашивается в оранжевый цвет Case 10 ActiveCell.Interior.Color = 65535 'Ячейка окрашивается в жёлтый цвет Case 11 To 20 ActiveCell.Interior.Color = 10498160 'Ячейка окрашивается в лиловый цвет Case Else ActiveCell.Interior.Color = 255 'Ячейка окрашивается в красный цвет End Select
В приведённом выше примере показано, как можно различными способами задать значение для элемента Case в конструкции Select Case. Вот эти способы:
Case Is <= 5 | Таким образом при помощи ключевого слова Case Is можно проверить, удовлетворяет ли значение Выражения условию вида <=5. |
Case 6, 7, 8, 9 | Так можно проверить, совпадает ли значение Выражения с одним из перечисленных значений. Перечисленные значения разделяются запятыми. |
Case 10 | Так проверяется, совпадает ли значение Выражения с заданным значением. |
Case 11 To 20 | Таким образом можно записать выражение для проверки, удовлетворяет ли значение Выражения условию вида от 11 до 20 (эквивалентно неравенству «11<=значение<=20»). |
Case Else | Вот так, при помощи ключевого слова Else, указываются действия для того случая, если значение Выражения не соответствует ни одному из перечисленных вариантов Case. |
Как только одно из условий будет найдено, выполняются соответствующие действия и производится выход из конструкции Select Case. То есть в любом случае будет выполнена только одна из перечисленных ветвей Case.
Более подробную информацию о работе VBA оператора Select Case можно найти на сайте Microsoft Developer Network.
Урок подготовлен для Вас командой сайта office-guru.ru
Источник: http://www.excelfunctions.net/VBA-Conditional-Statements.html
Перевел: Антон Андронов
Правила перепечатки
Еще больше уроков по Microsoft Excel