Управляющие конструкции языка VBA




 

Ветвления. Управляющие конструкции ветвления позволяют проверить некоторое условие, а затем в зависимости от результатов этой проверки выполнить ту или иную группу операторов. Для организации ветвлений в VBA используются различные формы оператора ветвления If и оператор выбора Select Case.

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

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

В блочной форме краткое ветвление выглядит следующим образом:

If <условие> Then

<оператор1>

<оператор2>

End If

В качестве условия можно использовать логическое выражение, возвращающее значения True (Истина) или False (Ложь), или любое арифметическое выражение. Если используется арифметическое выражение, то нулевое значение этого выражения эквивалентно логическому значению False, а любое ненулевое выражение — значению True. В том случае, когда условие возвращает значение False, оператор или блок операторов, заключенных между ключевыми словами Then и End If и составляющих тело краткого оператора ветвления, не будет выполняться.

Полная форма оператора If используется в тех случаях, когда имеются два различных блока операторов и по результатам проверки условия нужно выполнить один из них. Такая форма If не может записываться в одну строку и всегда имеет блочную форму записи:

If <условие> Then

<блок операторов1>

Else

<блок операторов2>

End If

Если условие истинно, выполняется первый блок операторов, заключенный между ключевыми словами Then и Else; в противном случае выполняется второй блок, заключенный между ключевыми словами Else и End If.

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

If <условие1> Then

<блок операторов1>

ElseIf <условие2> Then

<блок операторов2>

ElseIf <условие3> Then

<блок операторовЗ>

……………………………

ElseIf <условиеN> Then

<блок jператоровN>

Else

<блок jператоров_Е1sе>

End If

 

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

Select Case <проверяемоеВыражение>

Case <списокЗначений1>

<блок операторов1>

Case <списокЗначений2>

<блок операторов2>

Case <списокЗначений3>

<6лок операторов3>

……………………………..

Case Else

<блок операторов_Е1sе>

End Select

Проверяемое выражение вычисляется в начале работы оператора Select Case и может возвращать значение любого типа, например логическое, числовое или строковое.

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

<выражение>

в этом случае проверяется, совпадает ли значение проверяемого выражения с этим выражением;

<выражение1> То <выражение2>

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

Is <логический оператор> <выражение>

в этом случае проверяемое выражение сравнивается с указанным значением с помощью заданного логического оператора (например, условие Is > = 10 считается выполненным, если проверяемое значение не меньше 10).

Если хотя бы один из элементов списка соответствует проверяемому выражению, то выполняется соответствующая группа операторов и на этом выполнение оператора Select Case заканчивается, а остальные списки выражений не проверяются, т. е. в этом случае отыскивается только первый подходящий элемент списков выражений. Если же ни один из элементов всех этих списков не соответствует значению проверяемого выражения, то выполняются операторы группы Else (если таковая присутствует).

Циклы. В VBA имеется богатый выбор средств организации циклов, которые можно разделить на две основные группы: циклы с условием Do...Loop и циклы с перечислением For...Next.

Циклы типа Do...Loop используются в тех случаях, когда заранее не известно, сколько раз должно повториться выполнение блока операторов, составляющего тело цикла. Такой цикл продолжает свою работу до тех пор, пока не будет выполнено определенное условие. Существуют четыре вида циклов Do...Loop, которые различаются типом проверяемого условия и временем выполнения этой проверки. Синтаксисы этих четырех конструкций Приведены в табл. 1.

Таблица 1 – Синтаксисы управляющих конструкций

Синтаксис конструкции Описание
Dо While <условие> <блокОператоров> Loop Условие проверяется до выполнения группы опе­раторов, образующих тело цикла. Цикл продолжает свою работу, пока это условие выполняется (т. е. имеет значение True), иными словами, в этой конструкции указывается условие продол­жения работы цикла
Do <блокОператоров> Loop While <условие> Условие проверяется после выполнения хотя бы один раз операторов, составляющих тело цикла. Цикл продолжает свою работу, пока это условие остается истинным, иными словами, в этой конст­рукции указывается условие продолжения рабо­ты цикла
Do Until <условие> <блокОператоров> Loop Условие проверяется до выполнения группы опе­раторов, образующих тело цикла. Цикл продол­жает свою работу, если это условие еще не выпол­нено, и прекращает работу, когда оно станет ис­тинным, иными словами, в этой конструкции указывается условие прекращения работы цикла
Do <блокОператоров> Loop Until <условие> Условие проверяется после выполнения хотя бы один раз операторов, составляющих тело цикла. Цикл продолжает свою работу, если это условие еще не выполнено, а когда оно станет истинным, цикл прекращает работу, иными словами, в этой конструкции указывается условие прекращения работы цикла

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: