
- •1. Автоматизація підготовки юридичних, методичних та наукових документів на основі макросів
- •Загальні відомості
- •Основні методи створення макросів
- •1.2.1. Створення “свого” макросу за допомогою рекордера
- •1.2.2. Написання тексту процедури і її модернізація.
- •1.2.3. Створення кнопок користувача та панелеї інструментів
- •1.3. Приклади запису макросів ms word
- •1.3.1. Форматування слова чи фрази
- •1.3.2. Оформлення зауважень
- •1.3.3. Підпис до малюнків
- •1.4. Створення макросу у середовищі ms Excel
- •1.4.1. Форматування виділених осередків
- •1.4.2. Написання макросу в редакторі vba
- •1.5. Повторення дій у середовищі vba
1.5. Повторення дій у середовищі vba
При записі макросів за допомогою рекордера завжди виходить лінійний ланцюжок інструкцій, що послідовно описує виконані в процесі запису дій. Для того щоб створити процедури, здатні на підставі перевірки деяких умов здійснити вибір однієї з декількох можливостей чи організувати так називані циклічні процеси (повторення дій), приходиться писати процедури самому. Мова VBA надає кілька могутніх і гнучких структур, що дозволяють легко повторювати різні дії. Цикли реалізуються за допомогою ключових слів For/Next, Do Loop і For Each/Next. Обмежимося розглядом оператора циклу For/Next, який найбільш часто використовується. Даний оператор має наступний синтаксис:
For лічильник = НачальноеЗначение To КонечноеЗначение [ Step Приращение ]
оператори
Next [ лічильник ]
У квадратні дужки укладені необов'язкові елементи синтаксичної конструкції. Усі цикли For використовують як лічильник перемінну, значення якої збільшується чи зменшується при кожнім виконанні циклу. На початку циклу лічильнику привласнюється НачальноеЗначение. У циклі лічильник змінюється на збільшення доти, поки не буде досягнуте задане КонечноеЗначение. У наступному прикладі "лічильник" s змінюється від значення 1 до значення 15 із кроком 2 при кожнім виконанні циклу і, відповідно, приймає значення 1, 3, 5, 7, 9, 11, 13, 25.
For s = 1 To 15 Step 2
оператори, яки використовують значення s, що змінюється
Next
Якщо збільшення "лічильника" дорівнює одиниці, задавати його явно необов'язково, тобто вказівку Step 1 можна опустити.
Створимо новий макрос для MS Excel, що записує в перші чотири осередки першого рядка листа текстові значення з номерами кварталів року.
Запустить MS Excel і перейдіть на новий робочий лист.
Натисніть Alt+F11 для активізації редактора VB.
Виконаєте команду InsertModule для додавання нового модуля до проекту. Редактор додає новий модуль і відкриває в правій частині вікно коду.
У лівому нижнім вікні Properties Module 1 перейменуйте новий модуль, давши йому ім'я, наприклад, Demo_ForNext.
Введіть наступний текст:
Sub Demo_ForNext()
For s = 1 To 4
Cells( 1, s ).Value = "Квартал " & s
Next
End Sub
6. Поверніться у вікно документа (наприклад, комбінацією Alt+Q ) і запустите макрос Demo_ForNext.
Даний макрос виводить заголовок деякої таблиці тільки в лівому верхньому куті робочого листа.
Завдання для самостійного виконання.
Самостійно зміните текст макросу для того, щоб можна було вказувати місце розташування таблиці на робочому листі шляхом уведення координат самого лівого осередку заголовка.
Sub Demo_ForNext()
Dim Str As String
Str = InputBox("Введите номер строки:")
Stolb = InputBox("Введите номер столбца:")
Range("A1:K20").ClearContents
For s = CInt(Stolb) To (CInt(Stolb) + 3)
Cells(CInt(Str), i).Value = "Квартал " & (i - CInt(Stolb) + 1)
Next
End Sub
У зміненому тексті макросу перед оператором циклу поміщене оператор очищення видимої на екрані частини робочого листа при кожнім запуску макросу. Функція CInt(x) перетворить строкове значення х у ціле значення. Метод Cells(a,b) вибирає як об'єкт Range одиночний осередок чи так називану колекцію одиночних осередків. Його особлива зручність полягає в тім, що він використовує числові значення, що визначають номер рядка (a) і стовпця (b), на перетинанні яких знаходиться осередок.
Призначте також макросу яку-небудь комбінацію клавіш, наприклад, Ctrl+K (команда Сервис Макрос МакросыПараметры) і опишіть макрос.
Для поглиблення знань і практичних навичок використання VBA можна звернутися до літературних джерел [1, 2, 3].