Робота з циклом for в vba

У цьому уроці буде розглянута робота з циклом For в VBA. Приклад роботи з циклом For, так само буде продемонстрований приклад створення формул в Excel за допомогою макросів.

Цикл For працює за принципом лічильника. For застосовується в тих випадках, коли необхідно повторити деякі дії заздалегідь відоме кількість разів. Наприклад, цикл For часто використовується при читанні масивів.

  • "Лічильник" - змінна, яка змінюється на вказаний "крок". Якщо крок не вказаний, то за умовчанням береться одиниця.
  • "Початок циклу". "Кінець циклу" - числа або змінні вказують нижню межу лічильника і верхній. Зупинка циклу відбувається тоді, коли "лічильник"> "кінець циклу" (або, якщо цикл зворотний, тобто з кроком -1, то "лічильник" <"конец цикла").
  • Exit For - команда примусової зупинки циклу. Застосовується в тих випадках, коли відбулося деяке подія, після якого необхідно зупинити виконання команд в циклі, або для запобігання виникнення помилки.

Розглянемо кілька прикладів використання циклу For. Надалі, з цим циклом будемо зустрічатися досить часто.

приклад 1
Дано два стовпці С і Е заповнені числами:

Робота з циклом for в vba

Код макросу виглядає наступним чином (куди прописувати код Новомосковськ тут):

Sub Цікл_For ()
'Константа яка вказує межа циклу тобто до якого значення циклу бігти
Const n = 21
For i = 2 To n
'Створюємо рядок формулу і зберігаємо її в клітинку
Cells (i, 4) = "= C" CStr (i) "+ E" CStr ((n - i) + 2)
'Продовження коли виконується в циклі
Next i
'Решті код програми
End Sub

Розбираємо написаний код:

  • Const n = 21 - опис константи n зі значенням 21, тобто число рядків по якому необхідно пробігтися циклу For;
  • For i = 2 To n - i лічильник який буде змінюватися на 1 з кожним проходом циклу. Лічильник починається з 2 і закінчується коли i> n;
  • Cells (i, 4) - осередок виділеного аркуша, i номер рядка, 4-номер стовпця в який виводиться результат. Зверніть увагу, наш лічильник i вказує номер рядка листа Excel;
  • Next i - оператор закриття циклу і перекладу покажчика до For. Все що знаходиться між For і Next виконується в циклі;
  • CStr - функція перетворює число в текст.

Осередку ми присвоюємо формулу створену в такий спосіб "= C" CStr (i) "+ E" CStr ((n - i) + 2). знак - "склеювання" символів, рядків. В результаті у нас вийде формула "= Сn + E ((n - i) + 2)" де n = 21, i - лічильник.
Страшно? Це тільки здається :)

Усе. Після виконання макросу ми отримаємо наступний стовпець (виділено), а в кожному осередку формула:

Робота з циклом for в vba

приклад 2
Тепер розглянемо цикл із зазначеним кроком. Після розрахунку минулого макросу ми отримали три стовпці, тепер нам необхідно з шпальти E відняти D, в стовпець F вивести формули вирахування. Код макросу наступний:

В даному випадку все теж саме, тільки цикл тепер "біжить" немає від 2, а від 21 до 2 з кроком (Step) -1.
Результат виконання отримаємо наступний:

Робота з циклом for в vba

Цикл For. в VBA, є не єдиним циклом. Надалі будуть розглянуті ще пара варіантів циклів, без яких не обійтися при написанні макрокоманд в Excel.