Логические выражения

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

Над элементами логических выражений могут производиться логические операции, которые на языке Visual Basic обозначаются следующим образом: логическое умножение – And, логическое сложение – Or и логическое отрицание Not. При записи сложных логических выражений часто используются скобки.

(5 > 3) And (2*2 = 5) - условие ложно;

(5 > 3) Or (2*2 = 5) - условие истинно.

12. Если выражение содержит больше одного оператора, то вычисление значения та-

ких многоэлементных выражений регулируется правилами о приоритете выполнения

операций, принятыми в языке VBA. Приоритеты основных операторов представлены

в табл. 1. Операторы, имеющие одинаковый приоритет, выполняются в выражении

последовательно, слева направо. Изменить стандартный порядок выполнения операций в

выражениях языка VBA можно с помощью скобок.

Таблица 1

Оператор Название Приоритет

^ Возведение в степень 1

*, / Умножение, деление 2

Деление без остатка 3

Mod Остаток 4

+, - Сложение, вычитание 5

& Слияние строк 6

 

13. Если в исполняемом коде программы отсутствуют управляющие операторы, то при запуске программы она выполняется линейно. Другими словами операторы выражений будут выполняться оператором последовательно от первого до последнего. В некоторых случаях необходимо изменить порядок выполнения инструкций. Для этого в VBA служат операторы управления или управляющие конструкции. К операторам управления относятся операторы условного перехода и циклов.

Операторы условного перехода - это инструкции, которые определяют ход выполнения других операторов программы в зависимости от результатов анализа некоторых условий. Управляющие операторы позволяют выполнять или пропускать определенные операторы выражений. К операторам условного перехода относятся операторы ветвления IF...Then и выбора Select Case. Существует краткая (IF...Then) и полная форма (IF...Then...Else...End If) операторов ветвления. Необходимо отметить, что при записи инструкции в одну строку ключевые слова End If не применяется.

 

14.Оператор If…Then

IF <условие> Then <оператор>

Краткая форма оператора ветвления для блока операторов имеет следующий вид:

IF <условие> Then

...<оператор1>

...<оператор2>

End If.

Когда условие истинно (т.е. результатом условия является true), то выполняется инструкция, или группа инструкций, следующая за ключевым словом "Then".

Оператор If…Then…Else

Синтаксис:

Вариант_1:

If Условие Then Операторы1 Else Операторы2

Вариант требует написания оператора в одну строку, при этом в секциях Операторы1 и Операторы2 можно указывать несколько операторов, разделяя их двоеточием.

Вариант 2:

If Условие Then

Операторы1

Else

Операторы2

End If

Вариант позволяет указывать несколько операторов в разных строках

Логика работы следующая: VBA сначала оценивает логическое выражение, представленное в секции «Условие» ; если это логическое выражение равно True то выполняется оператор (операторы) секции «Операторы1» ; затем VBA продолжает выполнение кода следующего за строкой If..Then (Вариант 1) или за ключевыми словами End If (Вариант 2). Если же логическое выражение равно False, то выполняются операторы секции «Операторы2».

Возможно использование нескольких условных операторов в одном блоке:

Вариант 1:

If условие1 Then

[операторы первой истиной ветви]

If условие2 Then [операторы второй истиной ветви]

….

Else

[операторы ложной ветви]

End if

Простое вложение условных операторов друг в друга

Вариант 2:

If условие1 Then

[операторы первой истиной ветви]

ElseIf условие2 Then

[операторы второй истиной ветви]

…..

Else

[операторы ложной ветви]

End If

Сложное вложение. Сначала проверяется условие1 и при True выполняются операторы первой истиной ветви, затем (если условие 1 = False) проверяется условие 2 и если оно True то выполняются операторы второй истиной ветви. Если и первое и второе условие False , то выполняются операторы ложной ветви.

15. В VBA применяется еще один operator условного перехода типа Select Case. Этот operator позволяет осуществить выбор альтернативного варианта, сравнивая значение с различными выражениями.

Синтаксис оператора условного перехода Select Case имеет вид:

Select Case значение

....Case <условие1>

... ...<операторы1>

....Case <условие2>

.......<операторы 2>

..............................

....Case <условиеL>

.......<операторыL>

....Case Else

.......<операторM>

End Select.

В этом условном операторе значение переменной сравнивается с каждым из значений, которые хранятся в выражениях каждого из условий. Если значение переменной удовлетворяет одному из значений условия, будут выполняться operators, следующие за этим условием. Затем будет выполняться operator, следующий за ключевым словом End Select. Если значение переменной не удовлетворяет ни одному из значений условий, то выполняется "операторМ", следующий за оператором Case Else.

16. Какие либо действия процедуры повторяющиеся заданное количество раз или пока выполняется или не выполняется некоторое условие называют циклом.

Процесс выполнения все операторов, заключенных в структуру цикла, один раз называется итерацией цикла.

Структуры цикла, всегда выполняющиеся заданное количество раз, называются циклами с фиксированным числом итераций. Другие типы структур цикла повторяются переменное количество раз в зависимости от некоторого набора условий. Такие циклы называются неопределенными циклами.

Блок операторов, находящийся между началом и концом цикла называется "тело цикла".

Самой простой структурой цикла является фиксированный цикл.

Циклы: Цикл For..Next, For Each..Next, Do…Loop, Do While и Do Until