Операторы условия в VBA

Наиболее важные операторы условия, используемые в 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.

11.12.2015 19:05
7985

Комментарии

Нет комментариев. Ваш будет первым!