Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Операторы цикла
В VBA существуют два основных типа циклов циклы со счетчиком (параметрические) и циклы с условием (итерационные).
Циклы со счетчиком используют в тех случаях, когда необходимо выполнить некоторые действия определенное число раз
Циклы с условием применяются тогда, когда некоторые действия в программе должны повторяться до тех пор, пока выполняется определенное условие.
Циклы с параметром For … Next
Структура цикла:
For Параметр_Цикла = Начальное_Значение To Конечное_Значение
[Step Шаг]
Операторы
[Exit For]
Next [Параметр_Цикла]
где For ключевое слово VBA (от), обозначающее начало цикла;
Параметр_цикла переменная, определенная в качестве счетчика цикла;
Начальное_Значение число, задающее начальное значение параметра цикла;
To ключевое слово VBA (до), разделяющее
Начальное_значение и Конечное_Знаение;
Конечное_Значение число, задающее значение параметра цикла,
при котором цикл завершается;
Step ключевое слово VBA (шаг), используемое для
задания шага цикла, необязательный аргумент;
Шаг число, задающее шаг цикла, т.е. значение, на которое
увеличивается (или уменьшается) значение параметра
цикла на каждом шаге. Это число может быть
отрицательным;
Exit For оператор досрочного выхода из цикла (необязательный);
Next ключевое слово VBA (следующий), обозначающее
конец цикла.
Работа цикла:
Шаг 1 Сначала определяется параметр цикла, а также вычисляются и запоминаются начальное и конечное значения этой переменной.
Шаг 2 Параметру цикла присваивается начальное значение.
Шаг 3 Начальное значение параметра цикла сравнивается с конечным значением.
Если параметр цикла больше конечного значения, программа сразу выходит из цикла и переходит к той строке кода, которая следует за циклом.
Шаг 4 Выполняется тело цикла.
Шаг 5 После выполнения тела цикла происходит присваивание параметру цикла следующего значения. Переход к шагу 3.
Примечание.
1. Если используется ключевое слово Step, то параметр цикла изменяется в соответствии с числом, указанным после этого слова. Если слово Step отсутствует, то значение шага равно единице.
Пример 1.
For I = 0 To 10 Step 2 (Значение I будет увеличиваться на 2)
2. Цикл For … Next может быть прерван досрочно при достижении какого либо условия. Для этого в нужном месте цикла нужно поместить оператор Exit For.
Пример 2.
Dim S As Integer
Dim j As Integer
S = 2
For j = 1 To 10
S = S + j
If S > 6 Then
Exit For (Выход из цикла, если значение S > 6)
End If
Next j
MsgBox (S)
Циклы с условием (итерационные)
Если какое-то действие (несколько действий) необходимо выполнить много раз, но заранее неизвестно сколько раз и это зависит от какого-то условия, то тогда следует воспользоваться циклом с предусловием или с постусловием.
В VBA есть два основных цикла DO … LOOP с условием, вводимым ключевым словом While, и с условием, вводимым ключевым словом Until. Оба они могут быть с предусловием или с постусловием.
Синтаксис:
Цикл с предусловием |
Цикл с постусловием |
Do While | Until <условие> <Тело цикла> Loop |
Do <Тело цикла> Loop While | Until <условие> |
где Do ключевое слово (делать);
While ключевое слово (пока);
Until ключевое слово (до тех пор пока);
Loop ключевое слово, указывающее на окончание цикла;
<условие> логическое выражение, истинность которого проверяется
в начале каждого выполнения тела цикла;
<тело_цикла> произвольная последовательность операторов;
Конструкция Do … While читается: делать пока выполняется условие. В конструкции Do … While для увеличения шага следует писать специальный оператор, т.к. в ней в отличие от конструкции For, не делается это автоматически.
Конструкция Do … Until читается: делать до тех пор, пока не будет выполнено условие. В конструкции Do … Until для увеличения шага следует писать специальный оператор, т.к. в ней в отличие от конструкции For, не делается это автоматически.
Условие, записанное после ключевого слова Until, проверяется в конце каждой итерации (после выполнения тела цикла). Обратить внимание, что оно работает здесь не совсем так, как в цикле While. Если условие является истинным (True), то выполнение цикла завершается. Если условие не выполняется (является ложным False), то вновь выполняется тело цикла.
Пример 1.
Постановка задачи. Вычислить сумму конечного ряда с помощью подпрограммы-процедуры.
Технология выполнения задания:
1. Исходные данные: i Z
Результат: S R.
2.Набрать в стандартном модуле проекта следующую пользовательскую процедуру, используя цикл с предусловием While:
Sub summa()
Dim S As Integer
Dim i As Integer
S = 0
i = 1
Do While i <= 10
S = S + i ^ 2
i = i + 1
Loop
MsgBox (S)
End Sub
3.Набрать в стандартном модуле проекта следующую пользовательскую процедуру, используя цикл с предусловием Until:
Sub summa()
Dim S As Integer
Dim i As Integer
S = 0
i = 1
Do Until i > 10
S = S + i ^ 2
i = i + 1
Loop
MsgBox (S)
End Sub
4 Набрать в стандартном модуле проекта следующую пользовательскую процедуру, используя цикл с постусловием While:
Sub summa()
Dim S As Integer
Dim i As Integer
S = 0
i = 1
Do
S = S + i ^ 2
i = i + 1
Loop While i <= 10
MsgBox (S)
End Sub
5 Набрать в стандартном модуле проекта следующую пользовательскую процедуру, используя цикл с постусловием Until:
Sub summa()
Dim S As Integer
Dim i As Integer
S = 0
i = 1
Do
S = S + i ^ 2
i = i + 1
Loop Until i > 10
MsgBox (S)
End Sub