
- •Теоретична довідка до пр №23
- •Код макросів та його редагування
- •Теоретична довідка до пр №24 Середовище vba
- •Процедура типу Sub і процедура типу Function
- •Теоретична довідка до пр №25-26 Об’єктна структура мови vba
- •Загальні принципи побудови vba-програм
- •Основні елементи мови програмування Visual Basic For Application (vba)
- •Стандартні математичні функції
- •Оператор введення InputBox
- •Оператор виведення MsgBox
- •Оператор виведення даних Print
- •Теоретична довідка до пр №27 Оператори управління обчислювальним процесом
- •Оператор вибору Select Case
- •Об’єкти vbа у середовищі ms Excel
- •Теоретична довідка до пр №28-29 Оператори циклів
- •Приклади програм з використанням об’єктів ms Excel у циклічних обчислювальних процесах:
- •Теоретична довідка до пр №30-31 Використання масивів та матриць
- •Теоретична довідка до пр №32 Рядкові величини
- •Теоретична довідка до Практичної роботи №32-33 Властивості екранної форми та елементів управління
- •Основні методи та події об’єктів vba
- •Створення процедур опрацювання подій
Процедура типу Sub і процедура типу Function
У мові VBA існує кілька типів процедур Sub i Function. Процедура типу Sub (процедура-підпрограма) — це частина програми, яка може виконуватися незалежно.
Синтаксис процедури типу Sub:
Sub Ім'я [(аргументи) ]
... <оператори>
End Sub
Ім'я — це унікальне ім'я процедури, складене відповідно до правил мови VBA. Список аргументів (необовязковий параметр в круглих дужках). Якщо аргументи у процедурі відсутні, то після імені ставиться порожня пара дужок.
Область дії кожної процедури визначається вказаним при її оголошенні ключовим словом — Private або Public. При цьому можна виділити три типи області дії процедур.
1. Процедура, оголошена з використанням ключового слова Private, доступна для всіх процедур в даному модулі і недоступна процедурам з інших модулів:
Private Sub Ім’я [(аргументи)]
<оператори>
End Sub
2. Процедура, оголошена з використанням ключового слова Public, доступна для всіх модулів усіх проектів:
Public Sub Ім’я [(аргументи) ]
<оператори>
End Sub
3. Якщо в процедурі наявний оператор Option Private Module, то процедури, оголошені з використанням ключового слова Public, будуть доступні всім програмам даного проекту і недоступні для інших.
Якщо вказати ключове слово Static при оголошені процедури, то всі змінні цієї процедури будуть статичні, тому значення цих змінних будуть зберігатися і після завершення виконання процедури.
Static Sub Ім’я [(аргументи)]
<оператори>
End Sub
Процедура типу Function (процедура-функція) — це клас процедур, що відрізняються від інших тим, що в результаті виконання функції завжди обчислюється одне значення яке присвоюється змінній з іменем даної функції. Функції створюються тоді, коли деякі обчислення потрібно виконувати кілька разів у програмі з різними значеннями параметрів.
Синтаксис процедури типу Function:
Function <ім'я функції> ([аргументи функції])
<оператори>
End Function
де:
ім'я функції — значення, яке повертається у процедуру виклику після виконання процедури;
аргументи функції —імена змінних, значення яких використовуються функцією;
Останній оператор у тілі функції - оператор присвоєння імені функції обчисленого значення.
Приклад
Function TotalTax(Cost)
StateTax=Cost*0.05 ‘Податки штату 5%
CityTax= Cost*0.015 ‘Міські податки 1,5 %
TotalTax= StateTax + CityTax
End Function
Модулі не зберігаються у окремих файлах тому, щоб використовувати один і той самий модуль у різних проектах його слід експортувати у окремий файл з розширенням .bas вказівкою File→ Export File, вказати місце зберігання та ім’я, а потім імпортувати його у потрібний проект вказівкою File→Import File.
Для виконання деякої процедури вибрати команду меню редактора VBA Tools→ Macros і у діалоговому вікні Macros у списку Macro Name вибрати ім’я процедури та клацнути на кнопці Run (Выполнить) або просто натиснути клавішу <F5>.
Більш зручний запуск процедур здійснюється за допомогою кнопки на панелі швидкого доступу. Для її створення необхідно виконати наступні дії:
1. Клацнути вгорі над документом на кнопці Настройка панели быстрого доступа і у контекстному меню вибрати команду Другие команды…(Рис. 10)
Рис. 10. Діалогове вікно Настройка панели Рис.11. Вибір групи команд Макросы у діалоговому вікні быстрого доступа у додатку Word 2010 Параметры Word і створення нової кнопки
2. У діалоговому вікні Параметры Word у списку Выбрать команды из клацнути Макросы.
3. У списку зліва виділити потрібне ім’я і клацнути кнопку Добавить(Рис. 11). В результаті у список відібраних команд буде додано ім’я програми, а після натиснення на кнопку ОК на панелі швидкого доступу з’явиться нова кнопка.
4. Для того щоб змінити зображення на створеній кнопці необхідно у діалоговому вікні
Параметры Word клацнути Изменить і у діалоговому вікні Изменение кнопки вибрати готове зображення та закрити вікно.
Якщо при створенні макроса в Microsoft Word комбінацію клавіш для його запуска не було призначено, то це можна зробити пізніше, у діалоговому вікні Параметры Word. Для призначення комбінації клавіш макросу (чи VBA-програмі) у Word виконати наступні дії:
1. В меню Файл вибрати команду Параметры і у вікні Параметры Word перейти у розділ Настройка ленты. Клацнути на кнопці Настройка, розміщеній у нижній частині вікна.
2. У вікні Настройка клавиатуры вибрати у списку Категория значення Макросы, потім у списку Макросы вибрати ім’я програми (чи макросу).
3. У полі Новое сочетание клавиш ввести призначену для виклику програми комбінацію клавіш і клацнути на кнопці Назначить, а потім на кнопці Закрыть.
Тепер викликати вказану VBА- програму можна буде за допомогою призначеної комбінації клавіш.
Для визначення (або зміни) комбінації клавіш у середовищі Microsoft Excel, треба виконати наступні дії:
1. На стрічці перейти на вкладинку Вид і у групі Макросы вибрати в меню кнопки Макросы команду Макросы. Відкриється діалогове вікно Макрос. У списку Имя макроса вибрати програму і клацнути на кнопці Параметры.
2. У діалоговому вікні Параметры макроса ввести клавишу, яка у комбінації з <Ctrl> буде використовуватися для виклику вказаної VBA-програми. Для поверненя в програму клацнути на кнопці ОК.
Для видалення деякого модуля потрібно виділити його і виконати вказівку File→ Remove object_name.