Книга: VBA для чайников

Однострочные операторы If...Then

Однострочные операторы If...Then

Если структура If. . .Then должна выполнить только один оператор, когда условие принимает значение True, всю эту структуру можно уместить в одну строку. В таком случае оператор End If не требуется - точнее, его быть не должно. Оператор

If curЦена > 20 Then MsgBox "Цена слишком высока!"

в результате идентичен структуре

If curЦена > 20 Then

MsgBox "Цена слишком высока!"

End If

Если нужно, чтобы на основании одного условия программа выбирала между двумя альтернативными блоками программного кода, используйте оператор If. . .Then. . .Else.

В том случае, если условие принимает значение True, то выполняется один блок программного кода, а если условие принимает значение False, то выполняется другой. Вот формальный синтаксис этого оператора:

If условие Then

( операторы, выполняющиеся, когда условие = True)

Else

(операторы, выполняющиеся, когда условие = False)

End If

Если условие имеет значение True, VBA выполняет первый блок операторов и, пропустив все остальные операторы структуры, переходит к строке программного кода, следующей сразу за оператором End If. А если условие имеет значение False, то выполняются только операторы, следующие за оператором Else.

В следующем примере выражение условие проверяет, является ли элемент управления в форме кнопкой. При положительном результате фон кнопки закрашивается красным цветом, все другие элементы управления - голубым:

If TypeOf ctlCurrentControl Is CommandButton Then

ctlCurrentControl.BackColor = &HFF& ' красный

Else

ctlCurrentControl.BackColor = &HFFFF00& ' голубой

End If

В этом примере предполагается, что переменная ctlCurrentControl уже содержит ссылку на соответствующий объект в форме. Ключевое слово TypeOf позволяет проверить, является ли объект, на который ссылается переменная, объектом нужного типа - в данном случае объектом CommandButton.

Оглавление книги


Генерация: 1.467. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз