В следующем примере выражение условие проверяет, является ли элемент управления в форме кнопкой. При положительном результате фон кнопки закрашивается красным цветом, все другие элементы управления - голубым:
>If TypeOf ctlCurrentControl Is CommandButton Then
ctlCurrentControl.BackColor = &HFF& ' красный
Else
ctlCurrentControl.BackColor = &HFFFF00& ' голубой
End If
В этом примере предполагается, что переменная ctlCurrentControl уже содержит ссылку на соответствующий объект в форме. Ключевое слово TypeOf позволяет проверить, является ли объект, на который ссылается переменная, объектом нужного типа - в данном случае объектом CommandButton.
Использование операторов If...Then
Часто, прежде чем принять решение о действиях, которые должна выполнить программа, приходится проверять два или даже больше условий. Это - как в жизни. Когда вы пишете книгу по VBA, то можете рассуждать примерно так: "Если я успею закончить книгу к установленному сроку и если не закончатся деньги, а также если курс рубля к доллару не изменится, то я смогу слетать в октябре на пару недель в Америку. Но если рубль упадет, то мне придется ехать в Тамбов".
В зависимости от ситуации, при этом потребуется добавить в структуру If. . .Then ключевые слова ElseIf или вложенные структуры If . . .Then.
Используйте ключевое слово ElseIf, чтобы проверить дополнительное условие, если вы хотите выполнять определенные операторы только в случае, когда первое условие не принимает значение True. Ниже представлен синтаксис такой структуры:
>If условие! Then
(операторы, выполняющиеся, когда условие! = True)
ElseIf условие2 Then
(операторы, выполняющиеся, когда условие! = False, а условие2 = True)
ElseIf условиеЗ Then
(операторы, выполняющиеся, когда условие! и условие2 = False, а условиеЗ = True)
(другие операторы ElseIf )
Else ' необязательное ключевое слово
(операторы, выполняющиеся, когда все условия = False)
End If
При этом ключевое слово ElseIf в структуре может повторяться любое число раз.
Ключевое слово Else необязательно, но если оно присутствует, то должно быть в структуре последним.
Чтобы заставить работать этого монстра, представьте себе, что программа помогает вам вести учет в магазине по продаже фотоматериалов. Пленку, срок хранения которой истек, следует списывать и не учитывать в дальнейшем. Если же пленка еще не просрочена, ее нужно учесть в общем количестве пленок соответствующего типа.
Это делается в следующем фрагменте программного кода. Предполагается наличие объекта, представляющего ролик с пленкой, и наличие у этого объекта свойств для даты истечения срока хранения, типа пленки и признака цветности (как альтернативы черно-белого варианта).