Цикли vba for, while і інші

Доброго вам дня! Дану статтю я вирішив присвятити рубриці з основ програмування в Visual Basic for Application. І сьогодні ми поговоримо про циклах в VBA, розберемо їх синтаксис і розглянемо кілька прикладів, які часто зустрічаються програмісту.







Спочатку нагадаю, що цикл - процес повторення частини коду, що виконується, поки не буде виконано або порушено заданий нами умову.

У даній статті ми розберемо синтаксис і приклади таких циклів в VBA:

Цикл For в VBA

Цикли vba for, while і інші

Цикл for в VBA зазвичай використовується при зациклення фрагмента коду, якщо нам відомо кінцеве значення counter - лічильника, при якому ми вийдемо з циклу.
Візьмемо для прикладу найпоширеніший приклад:

Згенерувати масив з 5 цілих значень

VBA для циклу for дає можливість використовувати функцію Step. Як зрозуміло з перекладу, це крок, з яким ми будемо проходити наш інтервал. За замовчуванням, він дорівнює 1. Популярний варіант використання зустрічається у випадках, коли counter пов'язаний зі змінною, що використовується всередині циклу. Наприклад, при написанні програм, пов'язаних з функціями.

Знайти перетин графіка функції y = 5 * x + 5 з віссю ординат

Тепер уявімо, що у нас досить великий діапазон і ми не хочемо змушувати комп'ютер вважати зайві ітерації. На цей випадок існує команда Exit For. Перепишемо наш останній приклад з новою командою.







C допомогою команди Exit можна закінчити виконання будь-якого циклу в VBA. Досить вказати після Exit назва використовуваного циклу. Також їм можливо завершити роботу будь-якої процедури або функції.

Цикл For Each в VBA

Цикли vba for, while і інші

For Each в VBA заснований на переборі всіх елементів певного типу в масиві, об'єкті або групі.
Найпопулярніший варіант його використання - перебір сторінок в робочій книзі.

Вивести назви всіх листів в робочій книзі

І ще один цікавий приклад:

Змінити розмір шрифту і вирівняти по центру текст в label

Тут слід розуміти, що через Controls можна звернутися до будь-якого елементу форми. Якщо відфільтрувати по імені, наприклад, як ми зробили вище, то можна виділити групи елементів і змінити їх властивості. В даному випадку, розмір шрифту і вирівнювання.

Цикл While в VBA

Цикли vba for, while і інші

Цикли в VBA, які використовують структуру Do..Loop (це while і until цикли) можна записувати з різним розташуванням фрагмента умови. Як бачите на зображенні вище, умова може перевірятися після виконання однієї ітерації, а може перед запуском циклу.
Найпопулярніший приклад:

Відсортуйте по зростанню згенерований масив методом бульбашки

У вищевказаному прикладі ми відсортували масив з рандомних значеннями в порядку зростання. Метод бульбашки вважається досить довгим, але простим в реалізації. В основному, їм сортують невеликі числові масиви.

Цикл Until в VBA

Цикли vba for, while і інші

Як бачите, відмінності від while вкрай несуттєві. Цикл Until в VBA можна реалізувати за допомогою конструкції while NOT (condition). Проте, наведу приклад:

Змусити користувача ввести число

Чому змусити? Тому, що якщо користувач закриє вікно введення, це його не врятує, воно буде з'являтися знову і знову поки він не введе будь-яке число.

Поділитися посиланням:







Схожі статті