
- •Теоретична довідка до пр №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
- •Створення процедур опрацювання подій
Основні методи та події об’єктів vba
Доступ до властивостей можливий тільки через їх власні методи, тобто команд опрацювання саме цих конкретних властивостей. Методи – це звичайні підпрограми-процедуры, що виконують різні дії, наприклад, змінюють значення властивостей об’єктів. Методи зв’язані з конкретним об’єктом, тому звертатися до них можна тільки через відповідний об’єкт. Метод є частиною об’єкта і діє тільки на той об’єкт, через який здійснюється звернення до цього методу. Для виклику методу використовується наступний синтаксис:
Object.Метод
або
Object.Метод Аргумент1, Аргумент2, АргументЗ...
Дії користувача або інших програм, які розпізнаються об’єктом, називаються подіями. Деякі об’єкти можуть відгукуватися на визначенні події, якщо попередньо цей відгук запрограмувати. Ця програма називається процедурою опрацювання події.
Створення процедур опрацювання подій
При роботі з діалоговими вікнами будь-яка дія користувача ініціює в системі події, які опрацьовуються процедурами. Кожна процедура – це підпрограма, яка автоматично викликається, коли в системі відбувається зв’язана з нею подія і яка визначає, що буде робити об’єкт у відповідь на цю подію.
За замовчуванням процедури опрацювання подій є локальними (Private), тобто при створенні процедури редактор VBA автоматично додає на початок її оголошення ключове Private. Процедури опрацювання подій мають імена, в яких назва форми чи елемента управління об’єднано з назвою події за допомогою символу підкреслення, наприклад
Private CommandButtonl_Click
Запис процедури опрацювання події не відрізняється від створення будь-якої іншої процедури мовою VBA. Програмний код для процедури опрацювання події знаходиться у вікні програмного коду відповідної форми. Тому перед тим, як почати програмувати процедури опрацювання подій, необхідно виконати наступні дії.
1. Відкрити вікно програмного коду форми подвійним клацанням на формі або виділити форму та вибрати команду View=>Code з контекстного меню форми або натиснувши клавішу <F7>.
2. Вибрати у лівому списку вікна програмного коду форми той об’єкт, для якого буде створюватися процедура опрацювання події.
3. Вибрати у правому списку вікна програмного коду форми подію. При цьому, якщо ще не створено програмний код, VBA автоматично створить заготовку потрібної процедури.
Дуже часто потрібно записати процедуру перевірки правильності введених даних. Для цього програмний код повинен одержати введені користувачем дані, а потім перевірити їх на відповідність заданим критеріям.
Наприклад. На формі є елемент управління Счетчик (SpinButtonl), зв’язаний с текстовим полем (TextBoxl). Початкове значення лічильника, що відображається у текстовому полі, дорівнює 1. Клацання по верхній кнопці лічильника збільшує (а по нижній — зменшує) значення у текстовому полі на одиницю. Якщо це поле призначено для введення номера місяця року (від 1 до 12), то коли нове значення виходить за межі допустимого, то виконується його заміна на максимально або мінімально можливе. Далі поточне значення лічильника присвоюється властивості Value текстового поля.
Private Sub SpinButtonl_Change()
If SpinButtonl.Value = 13 Then
SpinButtonl.Value = 12 'Номер месяца не может превышать 12
End If
If SpinButtonl.Value = 0 Then
SpinButtonl.Value = 1 'Номер месяца не может быть меньше 1
End If
TextBoxl.Value = SpinButtonl.Value
End Sub