- •Лабораторна робота 1 Ієрархічна структура об'єктів vba. Властивості і методи
- •Продовження табл. 2
- •Закінчення табл. 2
- •Лабораторна робота 2 Організація програм у vba. Редактор Visual Basic
- •Лабораторна робота 3 Типи змінних. Тип даних, обумовлений користувачем. Змінна типу Оbject. Константи.
- •Лабораторна робота 4 Область дії змінної. Персистенція
- •Лабораторна робота 5 Оператори мови vba
- •Лабораторна робота 6 Масиви. Опис і створення масивів. Динамічні масиви
- •Лабораторна робота 7 Масив і діапазон робочого листа. Функції для роботи з масивами
- •Лабораторна робота 8 Убудовані функції vba. Функції користувача
- •Процедура повинна:
- •Лабораторна робота 9 Використання If і Select Case у функціях користувача
- •Лабораторна робота 10 Форма користувача
- •Лабораторна робота 11 Елементи керування
- •Лабораторна робота 12 Робота зі списками
- •Лабораторна робота 13 Розв’язання рівнянь методом послідовних наближень
- •Лабораторна робота 14 Використання методу ChartWizard і вбудованих математичних функцій для виконання фінансових розрахунків
- •Задачі для самостійного розв’язання
- •Список рекомендованої літератури Основна
- •Додаткова
Лабораторна робота 11 Елементи керування
Об'єкт UserForm може містити ті ж елементи керування, що знаходяться в діалогових вікнах Word, Excel чи інших додатках Windows.
Елементи керування (controls) – це елементи діалогового вікна, що дозволяють користувачу взаємодіяти з програмою. Кожен елемент керування (табл. 25) – це об'єкт із визначеними властивостями, подіями й методами. Як і для форми, що їх утримує, Ви можете встановлювати властивості елементів керування програмним шляхом чи за допомогою вікна Properties Windows редактора VBA. У програмі Ви можете привласнювати чи відновлювати значення властивостей елементів керування так само, як для будь-яких інших об'єктів.
Таблиця 25
Елемент керування |
Призначення |
1 |
2 |
Label (напис, мітка) |
Дозволяє створювати заголовки елементів керування, що не мають власних убудованих заголовків. Використовуйте цей елемент для того, щоб помістити на форму статичний текст, наприклад, поради із заповнення інших елементів керування |
TextBox (текстове поле) |
Вікно тексту вільної форми, що редагується, для введення даних. Може бути одно- чи багатостроковим |
ComboBox (поле зі списком) |
Поєднує вікно редагування й вікно списку. Використовуйте, коли хочете запропонувати користувачу вибрати значення, але при цьому дати йому можливість увести дані, відсутні в списку. Ви можете також обмежити вибір тільки тими значеннями, що з'являються в ComboBox для емуляції спадного списку |
ListBox (список) |
Відображає список значень, з яких користувач може зробити вибір. Вікна списку можна використовувати, щоб дати можливість користувачу вибрати тільки одне значення або декілька |
CheckBox (прапорець) |
Стандартний прапорець (квадратне вікно, що містить, якщо елемент обраний, галочку). Використовуйте прапорці для вибору варіантів, що не є виключні |
OptionButton (перемикач) |
Стандартне вікно-перемикач (кругле вікно, при виборі в центрі його знаходиться чорна крапка). Використовуйте OptionButton, коли користувачу необхідно зробити вибір між “включене-виключене”, “істина-неправда”. Кнопки перемикача, як правило, поєднуються разом за допомогою рамки для створення групи перемикачів |
ToggleButton (вимикач) |
Вимикачі служать для тієї ж мети, що й прапорці, але виводять установки у вигляді кнопки, що знаходиться в “натиснутому” чи “віджатому” стані |
Закінчення табл. 25
1 |
2 |
Frame (рамка) |
Візуально й логічно поєднує деякі елементи керування (особливо прапорці, перемикачі й вимикачі). Використовуйте Frame, щоб показати користувачу, які елементи керування в діалоговому вікні пов'язані між собою, чи щоб виділити групу елементів керування, відокремлюючи її від інших елементів керування, що знаходяться в діалоговому вікні |
CommandButton (кнопка) |
Використовуйте кнопки для виконання таких дій, як Cancel (скасування), Save (зберегти), ОК і т.д. Коли користувач клацає по кнопці, виконується VBA-процедура, закріплена за даним елементом керування |
TabStrip (набір вкладок) |
Цей елемент керування складається з області, у яку Ви поміщаєте інші елементи керування (такі як текстові поля, прапорці і т.д.) і смуги кнопок табуляції. Використовуйте елемент керування TabStrip для створення діалогових вкладок, що відображають ті самі дані в різних категоріях |
MultiPage (набір сторінок) |
Цей елемент керування складається з декількох сторінок. Ви можете вибрати кожну з них, клацнувши по відповідній вкладці. Використовуйте елемент керування MultiPage для створення діалогових вікон із вкладками |
ScrolBar (смуга прокручування) |
Цей елемент керування дозволяє вибирати лінійне значення, аналогічне тому, як це можна зробити за допомогою лічильника |
SpinButton (лічильник) |
Елемент керування SpinButton є спеціальним різновидом текстового поля. Звичайно лічильники використовуються для того, щоб увести число, чи дату які-небудь інші послідовні величини, що знаходяться у визначеному інтервалі значень. Клацання по стрілці лічильника, що вказує нагору, збільшує значення у віконці, а клацання по стрілці, спрямованій вниз, зменшує його |
Image (рисунок) |
Елемент керування Image дозволяє вивести на формі графічне зображення. Використовуйте Image для введення графічних зображень у кожнім з наступних форматів: *.bmp, *.cur, *.gif, *.ico, *.jpg, *.wrnf. Ви можете обрізати і масштабувати графічне зображення, щоб підібрати розмір елемента Image, але тільки не редагувати графічне зображення. Можна навіть написати спеціальну VBA-процедуру, що виконується, якщо користувач клацне по елементі керування Image |
Використання панелі інструментів Toolbox.
Використовуйте Toolbox (рис.5) для розміщення на формі елементів керування:
Select Object (вибір об'єктів), Label (напис), TextBox (поле), ComboBox (поле зі списком), ListBox (список), CheckBox (прапорець), OptionButton (перемикач), ToggleButton (вимикач), Frame (рамка), CommandButton (кнопка), TabStrip (набір вкладок), MultiPage (набір сторінок), ScrolBar (смуга прокручування), SpinButton (лічильник), Image (малюнок).
Рисунок 5
Доступ до елементів керування
1. Excel
На робочому листі можна розміщати різні елементи керування за допомогою панелі інструментів «Елементи керування», що відображається на екрані вибором команди Вид\Панелі інструментів\ Елементи керування чи натисканням кнопки «режим конструктора» на робочому листі .
а б в
Рисунок 6
Список основних елементів керування і вид відповідних кнопок панелі елементів наведений на рисунку 6.
а)перехід у режим конструктора;
б)перехід до властивостей;
в)перехід до вихідного тексту програми (код у VBA).
2. Редактор VBA
У VBA є великий набір убудованих елементів керування. Використовуючи цей набір і редактор форм, неважко створити користувальницький інтерфейс, що буде задовольняти усі вимоги, що ставляться до інтерфейсу в середовищі Windows.
Елементи керування є об'єкти. Тому, як будь-які об'єкти, вони мають властивості (табл. 26), методи й події (табл. 27). Елементи керування створюються за допомогою панелі інструментів «Елементи керування», що відображається на екрані або вибором команди View\Toolbox, або натисканням кнопки Toolbox (кнопка) панелі інструментів Standart. На цій панелі подані кнопки, за допомогою яких конструюються елементи керування. Усі кнопки панелі інструментів, за винятком кнопки «вибір об'єктів», служать для створення елементів керування. Клацнувши по кнопці «вибір об'єктів», можна виділити вже створений у формі елемент керування для наступного його редагування (зміна розмірів чи переміщення за допомогою маркерів).
Для розміщення елемента керування на формі натисніть відповідну кнопку й за допомогою миші перемістіть цей елемент у потрібне місце. Після цього, використовуючи маркери зміни розміру й переміщення, елемент керування можна переміщати, змінювати його розміри. Крім того, елементи керування можна копіювати в буфер обміну, уставляти їх з буфера обміну й видаляти з форми.
Таблиця 26
Властивість |
Область застосування |
Опис |
1 |
2 |
3 |
Accelerator |
CheckBox, Tab, CommandButton, Lable, Page, OptionButton, ToggleButton |
Містить символ, використовуваний як швидку операцію виклику, елемента керування. При натисканні Alt +<клавіша швидкого виклику> відбувається вибір елемента керування |
Cancel |
CommandButton |
Задає кнопку скасування діалогового вікна. При натисканні на цю кнопку чи клавішу Esc діалогове вікно зникає. Тільки одна кнопка форми може мати дану властивість |
Default |
CommandButton |
Визначає задану за замовчуванням кнопку. Коли користувач у процесі діалогу натискає клавіші Enter, ця кнопка поводиться так, ніби по ній клацнули |
List |
ComboBox |
Масив типу Variant (одно- чи багатомірний), представляє список, що міститься в елементі керування. Використовуєте індекс Value як нижній індекс у колекції List, щоб одержати текст для обраного пункту списку. Використовуйте методи елемента керування AddItem і RemoveItem для додавання чи видалення пунктів списку |
Закінчення табл. 26
1 |
2 |
3 |
Max |
ScrolBar, SpinButton |
Змінна типу Long, що визначає максимальне значення лічильника, чи значення, при якому смуга прокручування знаходиться в самому верху (для вертикальної смуги) чи праворуч (для горизонтальної) |
Min |
ScrolBar, SpinButton |
Змінна типу Long, що визначає мінімальне значення лічильника, чи значення, при якому смуга прокручування знаходиться в самому низі (для вертикальної смуги) чи ліворуч (для горизонтальної) |
RowSource |
ComboBox |
Задає джерело, з якого ListBox бере список об'єктів. У Excel VBA звичайно використовує діапазон робочого листа |
Selected |
ListBox |
Повертає масив значень типу Boolean для списку, що допускає множинний вибір. Кожен елемент масиву містить по одному елементу, що відповідає кожному пункту списку. Якщо значення елемента в масиві Selected дорівнює True, то відповідний пункт списку обраний |
TabIndex |
Усі елементи керування |
Число, що вказує положення елемента керування в порядку табуляції (може мати значення від 0 до значення, рівного кількості елементів керування на формі) |
TabStop |
Усі елементи керування |
Значення типу Boolean, що вказує, чи може елемент керування бути обраний клавішею Tab. Якщо значення TabStop дорівнює False, Ви, проте, можете клацнути на елементі й у такий спосіб його вибрати |
Value |
Усі елементи керування |
Значення поточних установок елементів керування: текст у текстовому полі, обрані прапорці й перемикачі, індекс обраного розділу списку або число, що вказує поточне положення смуги прокручування лічильника |
Таблиця 27
Подія |
Опис |
1 |
2 |
AfterUpdate |
Ініціюється після відновлення значення елемента керування |
BeforeUpdate |
Ініціюється після того, як було змінене значення елемента керування, але перед тим, як був обновлений сам елемент керування |
Закінчення табл. 27
1 |
2 |
Change |
Ініціюється всякий раз, як змінюється значення елемента керування |
Click |
Ініціюється всякий раз, коли по елементу керування клацають мишею. Використовуйте дану подію для того, щоб виконати дію за допомогою кнопки |
DblClick |
Ініціюється всякий раз, коли по елементі керування двічі клацають мишею. Використовуйте дану подію для введення додаткових форм |
Enter |
Ініціюється всякий раз, коли виділяється елемент керування (фокус) |
Exit |
Ініціюється всякий раз, коли з елемента керування знімається виділення (утрачає фокус) |
Error |
Ініціюється всякий раз, коли елемент керування виявляє помилку й не може повернути інформацію про помилку в програму |
KeyDown |
Ініціюється при натисканні користувачем якої-небудь клавіші в той момент, коли форма виконується й має фокус |
KeyPress |
Ініціюється, коли користувач натискає алфавітно-цифрову клавішу |
KeyUp |
Ініціюється, коли користувач відпускає клавішу |
Layout |
Ініціюється, коли змінюються розміри елемента Frame чи MaltiPage |
MouseDown, MouseUp |
Ініціюється при клацанні мишею. MouseDown: коли користувач натискає на клавішу миші; MouseUp: коли користувач відпускає клавішу миші |
MouseMove |
Ініціюється, коли користувач переміщає мишу |
SpinDown, SpinUp |
Подія SpinDown ініціюється, коли користувач клацає стрілу “униз” (чи “уліво”) кнопки лічильника. Подія SpinUp ініціюється, коли користувач клацає стрілу “нагору” (чи “вправо”) кнопки лічильника |
Zoom |
Ініціюється в разі зміни властивості Zoom |
Приклад 1
Елемент керування Лічильник призначений для установки числового значення. Основна подія Лічильника – Change, яка генерується в разі зміни значення лічильника. Властивості елемента керування SpinButton (лічильник) наведені в таблиці 28.
За допомогою цих властивостей лічильника і функції RGB створимо додаток для керування палітрою кольорів тексту «Visual Basic for Application», уведеного в чарунку «А1» робочого листа. Для цього на робочому листі створимо 3 лічильники, за допомогою вікна Properties установимо значення їх властивостей і в модулі робочого листа напишемо відповідні процедури
Таблиця 28
Value |
установлює чи повертає поточне значення лічильника. Значеннями лічильника є натуральні числа |
Min |
мінімальне значення лічильника |
Max |
максимальне значення лічильника |
SmallChange |
установлює крок зміни значення при клацанні на одній зі стрілок |
LinkedCell |
посилання на чарунку, звідки зчитуються чи куди вводиться поточне значення лічильника |
Name |
Ім'я об'єкта. За замовчуванням має значення Spinbutton1, Spinbutton2 і т.д. |
Sub Spinbutton_Change() 'і=1,2,3
Колір spinbutton1.Value, spinbutton2.Value, spinbutton3.Value
End Sub
Sub Worksheet_Activate()
With Range("A1")
.Value = "visual basic for applicatin"
.Font.Size = 20 'в чарунки ввести слова
.Font.Bold = True ' "червоний", "зелений", "синій".
End With
End Sub
Sub Колір(R, G, B)
Range("A1").Font.Color = RGB(R, G, B)
End Sub
Рисунок 7
Завдання до лабораторної роботи 11
1. Модифікувати програму до попередньої лабораторної роботи таким чином, щоб залежно від значень перемикачів:
або обчислити значення функції, що вводиться, при значенні аргументу, що вводиться. Результат відобразити в текстовому полі;
або табулювати значення функції на заданому інтервалі з заданим кроком. Таблицю значень функції вивести на робочий лист, побудувати графік функції на робочому листі й у формі користувача.
Рисунок 8
Для реалізації задачі створити діалогове вікно (рис.8), що відображає в разі ініціалізації два перемикачі OptionButton1 і OptionButton2 , дві мітки до них «значення» і «графік» відповідно, три командних кнопки «Обчислити», «Очистити» і «Вихід».
Під час вибору перемикача 2 діалогове вікно набуває вигляду 2 (рис.9).
Рисунок 9
Під час вибору перемикача 1 діалогове вікно набуває вигляду 1 (рис. 10).
Рисунок 10
2. Створити додаток, що дозволяє знайти роз’язок алгебраїчного рівняння на заданому проміжку з заданою точністю:
а) методом Ньютона;
б)методом половинного розподілу.
Для реалізації задачі створити відповідне діалогове вікно. Передбачити обробку помилок уведення.