16342

Операторы цикла в VBA

Лекция

Информатика, кибернетика и программирование

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

Русский

2013-06-20

42.5 KB

75 чел.

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

В VBA существуют два основных типа циклов – циклы со счетчиком (параметрические) и циклы с условием (итерационные).

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

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

Циклы с параметром ForNext

Структура цикла:

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. Цикл ForNext может быть прерван досрочно при достижении какого либо условия. Для этого в нужном месте цикла нужно поместить оператор 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 есть два основных цикла DOLOOP – с условием, вводимым ключевым словом While, и с условием, вводимым ключевым словом Until. Оба они могут быть с предусловием или с постусловием.

Синтаксис:

Цикл с предусловием

Цикл с постусловием

Do While | Until <условие>

<Тело цикла>

Loop

Do

<Тело цикла>

Loop While | Until <условие>

где                Do – ключевое слово (делать);

                While – ключевое слово (пока);

                 Until – ключевое слово (до тех пор пока);

                 Loop – ключевое слово, указывающее на окончание цикла;

       <условие> – логическое выражение, истинность которого проверяется

                             в начале каждого выполнения тела цикла;

 <тело_цикла> – произвольная последовательность операторов;

Конструкция DoWhile читается: делать пока выполняется условие. В конструкции DoWhile для увеличения шага следует писать специальный оператор, т.к. в ней в отличие от конструкции For, не делается это автоматически.

Конструкция DoUntil читается: делать до тех пор, пока не будет выполнено условие. В конструкции DoUntil для увеличения шага следует писать специальный оператор, т.к. в ней в отличие от конструкции 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


 

А также другие работы, которые могут Вас заинтересовать

83244. Экономика отрасли лекции 461 KB
  Отрасль в условиях рынка. Организация (предприятие) как хозяйствующий субъект рыночной экономики. Экономический анализ и бизнес-планирование. Трудовые ресурсы, их эффективность. Оплата труда. Товарные запасы и показатели эффективности их использования..
83245. Этногенез восточнославянских племен. Формирование древнерусской государственности. Основные историографические теории образования государства 37.5 KB
  Основные историографические теории образования государства. у восточных славян складываются предпосылки для образования государства: Возникновение древнерусского государства связывают с объединением политических центров в Новгороде и Киеве князем Олегом в 882 г.
83246. Эмоциональный интеллект 18.93 KB
  Представляет собой способность определить эмоции по физическому состоянию чувствам и мыслям; определить эмоции других людей через произведения искусств речь звуки внешний вид и поведение точно выражать эмоции и потребности связанные с данными чувствами; дифференцировать истинные и ложные выражения чувств.
83247. Нелинейное и динамическое программирование 42.96 KB
  Задача поиска наибольшей увеличивающейся подпоследовательности: дана последовательность требуется найти самую длинную возрастающую подпоследовательность. Задача о редакционном расстоянии расстояние Левенштейна: даны две строки требуется найти минимальное количество стираний...
83248. АННА КОМНИНА 20.26 KB
  Старшая дочь византийского императора Алексея I и Ирины Дукены, одна из образованнейших женщин своего времени, автор прозаического эпоса «Алексиада» о деяниях ее отца. Биографические сведения о писательнице содержатся в ее сочинении, в прологе к ее завещанию и в монодии...
83249. Семейные правоотношения 42.5 KB
  Такое деление основано на том что имущественные права и обязанности имеют определенное экономическое содержание. Личные права и обязанности такого содержания лишены они возникают в связи с нематериальными благами неотделимы от личности и непередаваемы другим лицам.
83250. Влияние экологии на население Криворожья 14.4 KB
  Население Криворожья пытается бороться с негативными последствиями деятельности предприятий; происходит реконструкция канализационных очистных сооружений строительство напорных трубопроводов защита от подтопления скоростного трамвая мероприятия по озеленению и уборке террритории города.
83251. Классификация жилых домов по градостроительной ситуации, виды жилой застройки 29.65 KB
  Периметральная застройка составляется из протяженных жилых домов любого типа: многосекционных коридорных галерейных блокированных рис. Однако периметральная застройка может охватывать и участок значительного размера.
83252. Изготовление бумажных денег 16.55 KB
  Затраты на производство бумажных денег велики и они могут быть снижены если купюры будут дольше обращаться не теряя своего первоначального внешнего вида. Очень важно чтобы на протяжении всего времени обращения бумажных денег была обеспечена их идентичность.