Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы программирования в среде Visual basic fo....doc
Скачиваний:
13
Добавлен:
20.04.2019
Размер:
1.62 Mб
Скачать

6. Реализация разветвляющихся алгоритмов в vba

Операторы перехода и выбора

– позволяют организовать ветвление в программе посредством выполнения тех или иных действий в зависимости от некоторого условия. Оператор GoTo осуществляет безусловный переход, но в настоящее время используется в программах все реже.

Перечислим операторы перехода и выбора VBA.

Оператор безусловного перехода. Формат:

GoTo Строка

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

Оператор условного перехода. Формат:

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

Если Условие принимает значение True (истина), то выполняются операторы после Then, иначе выполняются операторы после Else. Ветвь Else может отсутствовать.

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

If <Условие> Then

[Операторы 1]

[Elself <Условие-n> Then

[Операторы n]

[Else

[Операторы]]

End If

Оператор выбора. Формат:

Select Case <выражение>

[Case списокВыражений-1

[операторы-1]]

[Case списокВыражений-n

[операторы-n]]

[Case Else

[операторы_еlse]]

End Select

Операторы-n (необязательная часть) – один или несколько операторов, выполняемых в том случае, если выражение совпадает с любым компонентом списка список-Выражений-n.

Операторы_else (необязательная часть) – один или несколько операторов, выполняемых в том случае, если выражение не совпадает ни с одним из предложений Case.

Активизация подпрограммы обработки ошибок.

Оператор On Error GoTo строка активизирует подпрограмму обработки ошибок, начало которой определяется обязательным аргументом строка, значением которого может быть любая метка строки или номер строки. Для того чтобы предотвратить выполнение программы обработки ошибок в тех случаях, когда ошибка не возникла, необходимо помещать соответствующую инструкцию Exit Sub, Exit Function или Exit Property сразу после подпрограммы обработки ошибки, как в следующем примере:

Sub InitializeMatrix(Varl, Var2, Var3, Var4)

On Error GoTo M1

Exit Sub

M1:

Resume Next

End Sub

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

On Error Resume Next указывает, что при возникновении ошибки происходит передача управления на инструкцию, непосредственно следующую за инструкцией, вызвавшей ошибку.

On Error GoTo 0 отключает любой активизированный обработчик ошибок в текущей процедуре

7. Операторы цикла

Они позволяют организовать в программе повторение некоторых действий (как правило, с различными значениями параметров цикла).

В VBA имеются следующие операторы цикла

For – Next. Формат:

For <Счетчик> = <Начало> То <Конец> [Step <Шаг>] [Операторы 1]

[Exit For]

[Операторы 2] Next [<Счетчик>]

Цикл со счетчиком повторяет выполнение группы Операторов 1, пока Счетчик изменяется от Начального значения до Конечного с указанным Шагом. Если шаг не указан, то он полагается равным 1. Досрочный способ выхода из цикла предоставляет оператор Exit For.

For Each – Next. Формат:

For Each <Элемент> In <Группа>

[Операторы 1]

[Exit For]

[Операторы 2]

Next [<Элемент>]

Цикл повторяет выполнение группы Операторов 1 для каждого элемента массива или семейства.

Do Until – Loop. Формат:

Do [Until <Условие>]

[Операторы 1]

[Exit Do]

[Операторы 2] Loop

Тело цикла выполняется, пока Условие имеет значение False. Операторы 1 выполняются по крайней мере один раз, а затем проверяется условие. Досрочный способ выхода из цикла – Exit Do.

Do – Loop While. Формат:

Do

[Операторы 1]

[Exit Do]

[Операторы] Loop [While <Условие>]

Повторяет выполнение набора операторов, пока Условие имеет значение True. Сначала выполняются Операторы 1, а потом проверяется условие.

Do While – Loop. Формат:

Do [While <Условие>]

[Операторы 1]

[Exit Do]

[Операторы 2]

Loop

Цикл с «предусловием» проверяет Условие перед выполнением Операторов 1. Когда Условие становится ложным, цикл прекращает свое выполнение.

Do – Loop Until. Формат:

Do

[Операторы 1]

[Exit Do]

[Операторы 2]

Loop [Until <Условие>]

Повторяет выполнение набора инструкций, пока условие не примет значение True. Сначала выполняется инструкция, а потом проверяется условие.

While – Wend. Формат:

While <Условие>

[Операторы]

Wend

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