16342

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

Лекция

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

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

Русский

2013-06-20

42.5 KB

70 чел.

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

В 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


 

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

52937. Подорож по країні Excel. Введення та редагування даних різного типу. Автозаповнення. Копіювання, переміщення, вилучення, форматування таблиці 205.5 KB
  Домашнє завдання на наступний урок та інструктаж щодо його виконання: Достатній рівень: надр.процесорі таблицю Календар на 2011 рік Високий рівень: робота над проектом Розробка системи електронних таблиць що буде забезпечувати роботу певного магазину і складу при ньому 1 таблиця – Прайслист товарів послуг в різній валюті. Д Зберегти виконане завдання до своєї папки з ім'ям Розрахунки Домашнє завдання: Достатній рівень: надр.процесорі таблицю Календар на 2011 рік Високий рівень: робота над проектом Розробка...
52938. Екскурсія до військово – історичного музею Повітряних Сил Збройних Сил України 8.52 MB
  Вінниця 2012 Тема: Екскурсія до військово – історичного музею Повітряних Сил Збройних Сил України. Хід екскурсії Сьогодні експозиція музею Повітряних Сил Збройних Сил України нараховує 41 експонат військової техніки а у фонді налічується більше 2000 предметів. Колективом музею створено декілька тематичних експозицій: â€œВінничани – Герої Радянського Союзу†“43тя Ракетна армія та Ракетні війська стратегічного призначення†“Історія створення ВійськовоПовітряних Си놓Історія військ Протиповітряної оборон膓Авіаційна...
52939. ЕКСКУРСІЯ ПО МІСТАМ УКРАЇНИ 147.5 KB
  T. The last time we spoke about Zaporizhyan Sich and Zaporizhya, the city closely connected with Zaporizhyan Sich. But in the history of our Motherland there were very many other historical events. Today we’ll start our talk about Ukrainian towns and cities.
52940. Эйдетические формы обучения русскому языку 179.5 KB
  Владимир Троицкий А когда уроки для нас становятся светлыми и радостными праздниками Когда они проходят интересно плодотворно на одном дыхании Наверное когда у вас всё получается когда всё понимаете и запоминаете и эти знания вы можете применить на практике. Уже 17 лет на каждом уроке русского языка я провожу такой эксперемент используя различные формы и методы развития образной памяти и всякий раз убеждаюсь что применение эйдетической...
52941. Перетворюємо навчання у захоплюючу творчу гру 764 KB
  Синий слон Оранжевый –арбуз Голубой газета Желтый жук Красный карандаш Зеленый замок Фиолетовый фрукты Белый бант Чёрный часы Учитель называет слова один раз ученики повторяют в такой же последовательности а потом в разброс. Начинают игру словами: Бабушка укладывает в свой чемодан. Заучування вірша за піктограмами і словами вчителя. Етап проектування і покладання мети Давайте пригадаємо: що таке ейдетика Які прийоми ейдетики ми використовуємо щоб краще запам’ятати слова Цифри Сьогодні використовуючи різні...
52942. Задачі Ейлера 2.09 MB
  Захоплення математикою здебільшого починається з міркування над якоюсь цікавою задачею. Вона може зустрітися на уроці, на заняті математичного гуртка, в математичній літературі. Завдання сучасної школи виховати творчу особистість. Знання, навички уміння здобувають в результаті власної активної діяльності.
52943. Використання ігрового методу навчання іноземної мови на прикладі казок. Тестові завдання 49 KB
  A beautiful princess lives in a palace with her father the King and her seven sisters. She has got a golden ball. Every day she plays with her ball in the garden of the palace. There is a deep, dark pond in the garden. When the weather is hot, the princess likes to play near the pond. One day she drops her ball into the pond.
52944. 10 самых интересных фактов об автомате Калашникова 23 KB
  Его официальное название – 762мм автомат Калашникова образца 1947 года АК47. В США автомат Калашникова можно приобрести за 70350 долларов. Автомат Калашникова входит в Книгу рекордов Гиннесса как самое распространенное оружие в мире.