16342

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

Лекция

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

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

Русский

2013-06-20

42.5 KB

71 чел.

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

В 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


 

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

41287. Три поділи Польщі 47 KB
  Відтоді почався австрійський період історії Львова та краю тривав він до 1 листопада 1918 року. Відкрите втручання Росії в польські справи підтримка православних дисидентів спонукали шляхту утворити 29 лютого 1768 року в містечку Бар на Поділлі нову конфедерацію що спиралася на підтримку Австрії та Франції. Протягом липнясерпня 1768 року було розгромлено більшість гайдамацьких загонів. Але попри значну міжнародну підтримку 1772 року головні сили шляхти було розбито російськими військами під командуванням Суворова.
41289. Україна в Першій світовій війні 92.5 KB
  Невдала для балканських слов'ян війна 1912-1913 рр. зміцнила становище Австро-Угорщини. Вона створила нову державу — Албанію, яка позбавила Сербію виходу до Адріятицького моря. Відносини між слов'янами і урядом цісаря Франца-Йосифа щораз більше напружувались.
41290. Українська держава гетьмана П.Скоропадського. Внутрішня та зовнішня політика гетьманського уряду 23.2 KB
  у Києві відбувся з'їзд хліборобіввласників на який з усієї України прибуло кілька тисяч делегатів. Скоропадського який з'явився у ложі під бурхливі оплески було запрошено до президії зібрання що означало обрання його гетьманом України. Наступні документи гетьмана України: Закони про тимчасовий державний устрій України Грамоту до всього Українського народу . він зробив перший візит до німецького штабую Звертаючись до населення гетьман наголошував що гетьманство це здійснення ідеї незалежності України у традиційній...
41291. Українські землі в першій половині 18 ст. до 1754 р. 99.5 KB
  Батько гетьмана СтепанАдам Мазепа нале жав до партії Виговського і брав участь в укладанні Гадяцького до говору. в 1707 році була дорадницею синагетьмана що свідчить про її високу культурність та освіту. Року 1663 Іван Мазепа покинув королівську службу і 1669 рок опинився в Чигирині у гетьмана Дорошенка де присвятив себеукраїнській справі. У Дорошенка Іван Мазепа дістав рангу генерального осаула Він виконує важливі дипломатичні доручення гетьмана: в 1673 р їздить до Криму до гетьмана Самойловича в справі об'єднання України в 1674...
41292. Акт злуки УНР та ЗУНР. День соборності України 76.5 KB
  На довгому і тернистому шляху українського народу до заповітного ідеалу соборності злука УНР і ЗУНР подія великого історичного значення.€ В той морозний січневий день збулася віковічна мрія українського народу жити однією сімєю на своїй землі в єдиній державі не розділеній кордонами і не розшматованій недружніми сусідами. Ідея єдності і соборності батьківських земель як і ідеї незалежності і державного суверенітету сильної централізованої влади є головним...
41293. Утворення Директорії 13.23 KB
  Від січових стрільців у члени Директорії було висунуто соціалдемократа С. Представником Селянської спілки в Директорії став проректор Київського державного українського університету професор геології Ф. До складу Директорії ввійшли також адвокат соціалістсамостійник П.
41294. Управління проектами, кокнспект лекцій 2.72 MB
  Успіх найчастіше приходить до тих компаній, менеджери яких знають і свідомо використовують специфічні методи та інструменти управління проектами. І навпаки, ігнорування цих методів та інструментів, управління проектами за принципом «як прийдеться»
41295. Володимир Великий. Прийняття християнства та його історичне значення 99 KB
  Порівняйте плани Антанти та Троїстого союзу щодо України напередодні Першої світової війни. Розкрийте перебіг воєнних дій на території України у 1914р. Широкі плани щодо України розроблялись у Німеччині як з боку військових так і з боку промисловців і політиків.