VBA для «чайников» (Каммингс) - страница 128

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


>

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

Чтобы заставить работать этого монстра, представьте себе, что программа помогает вам вести учет в магазине по продаже фотоматериалов. Пленку, срок хранения которой истек, следует списывать и не учитывать в дальнейшем. Если же пленка еще не просрочена, ее нужно учесть в общем количестве пленок соответствующего типа.

Это делается в следующем фрагменте программного кода. Предполагается наличие объекта, представляющего ролик с пленкой, и наличие у этого объекта свойств для даты истечения срока хранения, типа пленки и признака цветности (как альтернативы черно-белого варианта).