При розробці програм часто доводиться змінювати порядок слідування операторів. Тільки в дуже простих програмах оператори виконуються один за іншим - управління передається послідовно, від оператора до оператора. На практиці необхідні кошти для зміни порядку проходження операторів, іншими словами, передачі управління - забезпечують оператори циклу і умовні оператори.
Часто при вирішенні завдань доводиться багаторазово обчислювати значення по одним і тим же математичним залежностям для різних значень що входять до них величин. Такі багаторазово повторювані ділянки обчислювального процесу називаються циклами. Використання циклів дозволяє істотно скоротити обсяг схеми алгоритму і довжину відповідної програми. Розрізняють ціклис заданим інеізвестним числом повторень. До останніх відносяться ітераційні цикли, що характеризуються послідовним наближенням до згаданої значенням із заданою точністю.
Для організації циклу необхідно виконати наступні дії:
1) задати перед циклом початкове значення змінної, що змінюється в циклі;
2) провести необхідні дії;
3) змінити змінну на величину кроку;
3) перевірити умова закінчення (або повторення) циклу;
4) переходити до п.2, якщо цикл не закінчений.
Останні чотири дії повторюються багато разів. Змінна, що змінюється в циклі, називається параметром циклу. Дії, повторювані багаторазово, називаютсятелом циклу.
Змінна, що змінюється в циклі, називається параметром циклу. В одному циклі може бути кілька параметрів. Змінну, значення якої обчислюються машиною і зберігаються в одній і тій же комірці пам'яті, називають простий змінної, а змінну, яка є елементом масиву, - змінної з індексом. Слід мати на увазі, що параметром циклу є при використанні простої змінної сама змінна, а при використанні змінної з індексом - її індекс.
Можливі три способи організації циклічних структур алгоритмів:
1) цикл "повторювати. до "(цикл з умовою поста);
2) цикл "поки" (цикл за умовою або цикл з передумовою);
3) рахунковий цикл (цикл з керуючоїзмінної).
Схема реалізації таких циклів представлена на рис. 1.
Мал. 1. Схеми організації циклів:
а - цикл з умовою поста (перевірка умови після тіла циклу),
б - цикл з передумовою (перевірка умови перед тілом циклу),
в - рахунковий цикл (цикл з відомим числом повторень)
У VBAцікли можна задати двома способами:
- з використанням оператора циклу FOR. NEXT;
- з використанням оператора циклу DO. LOOP;
Оператор циклу For. Next
Цикл For.Next використовується, коли необхідно повторити дію або ряд дій задану кількість разів, відоме до початку виконання циклу.
Цикл For.Next має наступний синтаксис:
For лічильник = Початок To Кінець [Step Крок]
Лічильник - будь-яка змінна, по якій організовано цикл.
У квадратних дужках зазначено не обов'язковий параметр.
За замовчуванням VBAувелічівает лічильник на 1 кожен раз при виконанні операторів в циклі (крок за замовчуванням дорівнює 1). Якщо потрібно інше значення кроку треба включати в операторFor необов'язкове ключове словоStep.
При виконанні циклу For.Next VBAпоступает наступним чином:
- присвоює значення Началосчетчіку;
- виконує всі оператори, представлені за допомогою Оператори циклу, поки не досягне ключового словаNext. яке указиваетVBAна те, що досягнутий кінець тіла циклу;
- змінює лічильник на величину Крок (якщо включається необов'язкове ключове словоStep); есліStep не визначене, тоVBAувелічівает змінну на 1;
- повертається до початку циклу і порівнює поточне значення лічильника зі значенням Кінець. Якщо значення лічильника менше або равноКонец, VBAвиполняет цикл знову. Якщо значення лічильника більше значеніяКонец, VBAпродолжает виконання коду з першого оператора після ключового словаNext.
Якщо Крок> 0, то такий цикл називаетсяціклом зі зростаючим лічильником. есліШаг<0 –цикл с убывающим счетчиком. В последнем случаеНачалодолжно быть большеКонец.
Цикл For.Next виконується тільки в тому випадку, якщо початкове значення лічильника циклу плюс крок зміни значення лічильника менше або дорівнює кінцевому значенню лічильника. Якщо кінцеве значення лічильника менше початкового значення, то крок повинен бути негативним. Цикл виконується до тих пір, поки поточне значення лічильника не вийде за рамки кінцевого значення. При завершенні поточного циклу до значення лічильника додається значення кроку. Якщо початкове значення і кінцеве значення лічильника мають одне і те ж значення, цикл виконується один раз, незалежно від значення кроку. Якщо крок дорівнює нулю, цикл триває невизначену кількість разів.
Приклад. Побудувати і заповнити таблицю значеннями функції
на інтервалес кроком 4'Оголошуємо початок, кінець циклу, крок
Dim xStart, xEnd, xStep As Integer
Dim x As Integer
Dim i As Integer
Dim xradian, y As Single
'Читання числових значень з робочого листа Excel
xStart = Cells (2, 2)
xStep = Cells (4, 2)
'Номер рядка заголовка таблиці значень функції
For x = xStart To xEnd Step xStep
'Обчислюємо значення x в радіанах
xradian = 3.14 * x / 180
'Обчислюємо значення функції
y = (2.51 * Sin (xradian) / (2 + 3 * Cos (xradian)) ^ (1/3))
'Передаємо отримані значення в робочий лист
При виконанні оператора For.Next автоматично здійснюється перевірка умови продовження циклу, змінюється значення аргументу на величину кроку і здійснюється перехід до рядка, наступній за рядком з оператором FOR, якщо величина змінної циклу менше або дорівнює її кінцевому значенню.