Читаем VBA для чайников полностью

"Данное выражение есть истина, когда, либо а + b больше, чем 20, а с равно 10, либо свойство Open объекта objDoor принимает значение True".

Я советовал бы не перегружать одно выражение несколькими логическими операциями, разве что вы настолько сообразительны, что вам вообще не нужен компьютер. А чтобы гарантировать применение операций именно к тем выражениям, к которым нужно, используйте скобки. В предыдущем примере скобки вокруг выражения objDoor.Open гарантируют, что именно это выражение будет участвовать в операции Or первым.

<p>Условные операторы If .. Then.</p>

Условные операторы If. . .Then, а также их вариации If. . .Then. . .Else и If. . .ElseIf используются значительно чаще любых других операторов. Довольно часто операторы If. . .Then встречаются и в других главах, но в этой они уж точно в центре внимания.

<p>Основная форма If...Then</p>

Оператор If ... Then выполняет некоторый блок программного кода, если условие, которое вы предложили этому оператору, принимает значение True, и не делает ничего, если условие принимает значение False. Синтаксис оператора следующий:

If условие Then

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

End If

Простой пример использования оператора If. . .Then можно найти выше в разделе "Анатомия управляющих структур" этой главы.

Обратите внимание на следующие моменты, касающиеся операторов If... Then.

* Здесь условие должно быть условным выражением типа описанных выше в разделе "Курс на использование условных выражений". Если условие принимает значение True, то VBA выполнит операторы, размешенные между If. . .Then и End If.

* Обратите внимание, ключевое слово Then размещается в одной строке с If и выражением условие. При размещении Then в следующей строке (без указания переноса с помощью символа подчеркивания в первой) VBA генерирует ошибку.

* Не забывайте печатать завершающий оператор End If, При его отсутствии VBA не поймет, какой оператор должен быть последним в блоке.

<p>Однострочные операторы If...Then</p>

Если структура 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.

<p>Использование операторов If...Then</p>

Часто, прежде чем принять решение о действиях, которые должна выполнить программа, приходится проверять два или даже больше условий. Это - как в жизни. Когда вы пишете книгу по VBA, то можете рассуждать примерно так: "Если я успею закончить книгу к установленному сроку и если не закончатся деньги, а также если курс рубля к доллару не изменится, то я смогу слетать в октябре на пару недель в Америку. Но если рубль упадет, то мне придется ехать в Тамбов".

В зависимости от ситуации, при этом потребуется добавить в структуру If. . .Then ключевые слова ElseIf или вложенные структуры If . . .Then.

Перейти на страницу:

Все книги серии Для чайников

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных