Вход/Регистрация
VBA для чайников
вернуться

Каммингс Стив

Шрифт:

Использование логических операций в условиях

Логические операции (см. главу 7) сначала оценивают значения входящих в выражение двух выражений-компонентов как True или False, а затем, в соответствии с определенными правилами, на основе этих значений получается конечный результат- тоже True или False.

Самыми важными логическими операциями (точнее, теми из них, использование которых проше всего объяснить) будут And, Or и Хог. Следующая таблица объясняет, что эти операции выполняют.

Операция

Возвращает True

Примеры

Результат

And

Только если оба выражения принимают значения True

3 * 2 = 6 And 12 > 11

True

2 + 2 = 4 And 4 - 2 = 1

False

Or

Если хотя бы одно из двух выражений принимает значение True

10 > 20 Or 20 > 10

True

5 < 4 Or 6 < 5

False

Хоr

Если только одно из двух выражений принимает значение True

– 5 + 5 < 9 Хог 5 + 5 = 10

True

5 + 5 > 9

Хог 5 + 5 = 10

False

Если желаете, можете использовать две логические операции в одном условном выражении. Полюбуйтесь, например, таким выражением:

(а + b > 20 And с = 10) Or (objDoor.Open)

В переводе на русский язык этот фрагмент программного кода можно прочитать так:

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

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

Условные операторы If .. Then.

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

Основная форма If...Then

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

Однострочные операторы 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.

  • Читать дальше
  • 1
  • ...
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: