- •Кафедра інформаційних технологій проектування
- •Запис, редагування та застосовування простого макросу
- •Інтегроване середовище розробки vb-програм – Редактор Visual Basic. Інтерфейс редактора vba
- •Вікно проекта
- •Вбудовані діалогові вікна
- •Процедура Msgbox. Виведення інформації
- •Функція InputBox. Введення інформації
- •Перенос рядка
- •Коментарі
- •Розміщення декількох операторів в одному рядку
- •Лекція №2
- •Що таке об’єкт?
- •Сімейство об’єктів
- •Властивості
- •Найважливіші об’єкти vba Об’єктна модель
- •Об’єкт Application (додаток)
- •Об’єкт Worksheet (Робочий лист)
- •Основні властивості робочих листів
- •Об’єкт Range (діапазон)
- •Оператор With - End With
- •Лекція №3
- •Що таке алгоритм?
- •Виконавець алгоритму — це деяка абстрактна чи реальна (технічна, біологічна чи біотехнічна) система, здатна виконати дії, що наказуються алгоритмом.
- •Якими властивостями володіють алгоритми?
- •У якій формі записуються алгоритми?
- •Базова алгоритмічна структура
- •Етапи рішення задач за допомогою комп'ютера
- •Використання імен
- •Типи даних
- •Константи
- •Операції vba
- •Вирази. Пріоритети (старшинство) операцій
- •Оператор присвоєння
- •Блок-схема алгоритму:
- •Лекція №6.
- •Форма. Елементи управління
- •Узгодження про імена
- •Арифметичні цикли. Оператор циклу For – Next
- •Лекція №8.
- •Список рекомендованої літератури:
Блок-схема алгоритму:
Програма:
Лекція №6.
Тема: Програмування на мові VBA. Створення форм VBA (UserForm). Елементи управління VBA. Властивості елементів управління. Події для елементів управління. Створення процедур обробки подій. Арифметичні цикли.
Форма. Елементи управління
Форма це діалогове вікно, яке створюється для того, щоб користувачу було зручно працювати з вашою програмою. На формі зазвичай на початковому етапі конструювання додатку розміщуються елементи управління.
Для створення форми потрібно виконати команду Insert – UserForm або натиснути відповідну кнопку Insert UserForm на панелі інструментів. Після виконання команди з’являється панель елементів управління ToolBox. У випадку, коли потрібно викликати панель елементів управління, виконується команда меню View – ToolBox або натискується кнопка ToolBox на панелі інструментів.
Наведемо список основних елементів управління з панелі елементів:
- поле
(TexBox)
- надпис
(Label)
- кнопка
(CommandButton)
- список
(ListBox)
- поле
зі списком (ComboBox)
- смуга
прокрутки (ScrollBar)
- перемикач
(OptionButton)
- прапорець
(CheckBox)
- рамка
(Frame)
- малюнок
(Image)
Для розміщення елементу управління на формі необхідно натиснути відповідну кнопку на панелі інструментів элементы управления і за допомогою мишки перетягнути рамку елементу на форму. Після цього елемент управління можна переміщати, копіювати, видаляти та змінювати його розміри.
Узгодження про імена
Коли створюється форма чи елемент управління, VBA по замовчанню встановлює властивість об’єкта Name (тобто його ім’я). Наприклад, першій створеній кнопці дається ім’я CommandButton1 , другій CommandButton2 і т.д. Коли розробляється додаток з однією формою це не викликає особливих труднощів. Але коли додаток складається з декількох форм, то важко відрізнити першу кнопку CommandButton1 першої форми від першої кнопки CommandButton1 другої форми. В цьому випадку об’єкти треба перейменовувати, щоб краще їх відрізняти. Навіть у випадку однієї форми для того щоб програма, в якій використовуються імена, краще читалась, їх треба задавати так, щоб вони відтворювали призначення і зміст елементів управління. Для цього і існує узгодження про імена, яке полягає в тому, що ім’я об’єкта починається з короткого префікса, що вказує на тип об’єкта, а за ним іде саме ім’я, яке відображає суть об’єкта.
Приклади префіксів імен:
TexBox txt
Label lbl
CommandButton cmd
ListBox lst
ComboBox cbo
ScrollBar scr
OptionButton opt
CheckBox chk
Frame frm
Image img
UserForm frm
Як уже зазначалося, і форма і елементи управління являються об’єктами VBA, а тому мають свої властивості, методи та події.
Властивості визначають зовнішній вигляд та функціонування форми та елементів управління. Задавати та змінювати їх можна як на етапі проектування у вікні властивостей Properties Windows, так і в програмі. Для цього елементи управління розглядаються як змінні. Ім’я змінної (елемента) задається на етапі проектування присвоєнням значення властивості Name.
Перш ніж розглянути основні властивості, методи і події форми та окремих елементів управління зупинимось на тих, які належать більшості з них
Основні загальні властивості елементів управління
Name – ім’я елементу управління.
Caption – повертає чи встановлює надпис, який відображається на елементі управління.
AutoSize – логічна властивість (може приймати значення True або False), яка задає режим автоматичної зміни розмірів елемента управління так, щоб на ньому повністю розміщувався текст, який задається властивістю Caption.
Visible - логічна властивість, яка задає потрібно відображати чи не відображати елемент управління під час виконання програми.
Enabled - логічна властивість, яка задає чи є досяжним для користувача елемент управління під час виконання програми.
Left, Top – координати лівого верхнього кута елемента
Height, Width – висота та ширина елемента
BorderColor - задає колір границі елемента
BackColor – задає колір фону елемента
ForeColor – задає колір тексту на елементі.
Можуть приймати такі значення
константа |
значення |
опис |
vbBlack |
0x0 |
чорний |
vbRed |
0xFF |
червоний |
vbGreen |
0xFF00 |
зелений |
vbYellow |
0xFFFF |
жовтий |
vbBlue |
0xFF0000 |
синій |
vbMagenta |
0xFF00FF |
рожевий |
vbCyan |
0xFFFF00 |
голубий |
vbWhite |
0xFFFFFF |
білий |
Наприклад, щоб задати голубий фон форми необхідно записати команду
UserForm.BackColor = vbCyan
Font - встановлює тип шрифту символів
BorderStyle – встановлює тип границі (можливі значення fmBorderStyleSingle – границя у вигляді контуру, fmBorderStyleNone – немає границі)
Picture – властивість, що дозволяє розмістити або видалити малюнок на елементі управління. Наприклад,на формі малюнок можна відобразити за допомогою такої інструкції: UserForm.Picture=LoadPicture(“a:\Мій_малюнок.bmp”) Щоб видалити малюнок з форми треба записати команду UserForm.Picture=LoadPicture(“”)
Основні загальні події елементів управління
Click – настає при клацанні лівою кнопкою миші на елементі управління
DblClick – настає при подвійному клацанні лівою кнопкою миші на елементі управління
KeyPress - - настає, коли користувач натискає будь яку клавішу на клавіатурі, за виключенням функціональних, клавіш управління і клавіш управління курсором
KeyDoun/KeyUp – настає, коли користувач натискає і відпускає будь яку клавішу на клавіатурі
MouseDown/ MousUp – настає, коли користувач натискає і відпускає будь яку клавішу миші
MouseMove - настає, коли користувач переміщає мишку
Change – настає, коли змінюється значення елемента управління
Форма (UserForm)
Основні властивості форми
Caption – задає текст в рядку заголовка вікна
Border Style - тип границі
константа |
значення |
опис |
fmBorderStyleNone |
0 |
немає границі |
fmBorderStyleSingle |
1 |
є границя (використовується по замовчуванню |
Picture – растровий малюнок, який відображається як фон форми
PictureSizeMode – задає спосіб розміщення растрового малюнку на формі. Може приймати такі значення
константа
значення
опис
fmPictureSizeModeClip
0
Частина зображення, що виходить за границі форми обрізається
fmPictureSizeModeStretch
1
Розтягає зображення таким чином, що воно вкриває все зображення.
fmPictureSizeModeZoom
3
Розтягає зображення , не змінюючи пропорцій
PictureTiling – приймає логічне значення, що вказує треба чи ні вкривати форму мозаїкою, створеною з растрового зображення
а також BorderColor, BackColor, ForeColor, Font
Основні методи форми
Show - відображає форму на екрані
Hide – закриває форму
Move – змінює місцезнаходження та розмір форми
PrintForm – друкує зображення форми
Основні події форми
Initilize – настає під час конфігурації форми, але до її завантаження
Load – настає під час завантаження форми у пам’ять, але до її відображення на екрані
UnLoad – настає, коли форма вигружається з пам’яті, використовується для того, щоб уточнити чи дійсно користувач бажає закрити форму
Текстове поле (TexBox)
Використовується в основному для вводу тексту, який може бути переведений в число чи формулу, які використовуються в програмі або для виводу в нього результатів обрахунків.
Основною пов’язаною з полем подією являється подія Change, що настає, коли змінюється значення в текстовому полі. Ця подія настає всякий раз при вводі, видаленні, зміні символу.
Найбільш уживаними властивостями поля є:
Text – основна властивість, повертає текст записаний в полі.
Multiline – приймає логічне значення, встановлює можливість багаторядкового вводу в поле, якщо значення даної властивості True.
ScrollBars – встановлює режим відображення в полі смуг прокрутки. Може приймати такі значення:
fmScrollBarsNone – не виводить смуги прокрутки
fmScrollBarsHorizontal - виводить горизонтальну смугу прокрутки
fmScrollBarsVertical - виводить вертикальну смугу прокрутки
fmScrollBarsBoth - виводить горизонтальну і вертикальну смуги прокрутки
а також BorderColor, BackColor, ForeColor, Font
Кнопка (CommandButton)
Використовується для ініціалізації виконання будь яких дій при натисканні на кнопку, наприклад, запуску програми чи виходу з неї, виводу результатів. Таким чином, основною пов’язаною з нею подією являється подія Click.
Найбільш уживаними властивостями кнопки є:
Caption – задає текст на кнопці
а також BorderColor, BackColor, ForeColor, Font
Надпис (Label)
Використовується для відображення надписів, наприклад, заголовків елементів управління, які не мають властивості Caption. Під час виконання програми користувач не в змозі змінити текст надпису з клавіатури.
Caption - основна властивість <Надпису> , відображає сам текст.
Autosize - якщо задати значення цієї властивості True, то довжина <Надпису> зміниться до довжини тексту.
WordWrap – якщо одночасно з Autosize встановити значення властивості WordWrap True, то слова, які не поміщаються у рядку, автоматично будуть переноситися на новий рядок, іншими словами ця властивість корегує розмір <Надпису> по вертикалі
а також BorderColor, BackColor, ForeColor, Font
Перемикач (Option Button)
Використовується для вибору одної з взаємовиключних альтернатив (однієї опції чи параметру з групи). Звичайно перемикачі відображаються групами по вибраним альтернативам. Для цього вони поміщаються в окремий елемент контейнер, наприклад Рамка (Frame)
Найбільш важливими подіями перемикача є Click та Change.
А основною властивістю - Value
Value – повертає логічне значення True, якщо перемикач вибрано, False – у протилежному разі
Caption – відображує надпис поряд з перемикачем
а також BackColor, ForeColor, Font
Рамка (Frame)
Це один з елементів контейнерів. Використовується для візуального групування елементів управління. Об’єкти, що об’єднані за допомогою рамки можна як одне ціле переміщувати, активізувати чи деактивізувати, робити видимими чи навпаки. Для об’єднання елементів в групу необхідно спочатку створити елемент контейнер, а вже потім добавити в нього необхідні елементи.
Події рамки зазвичай не аналізуються.
Основною властивістю є Caption, що задає надпис на рамці.
Рисунок (Image)
Використовується для відображення графічних файлів у форматах BMP, CUR, GIF, ICO, JPG,WMF.
Основними властивостями даного об’єкта є:
Picture - задає графічний файл. В програмі можна використовувати з функцією LoadPicture. Синтаксис: Picture= LoadPicture(<Повне і’мя файлу>);
PictureSizeMode – встановлює масштаб малюнка, розглядалась вище;
PictureAlignment – встановлює положення малюнку на об’єкті. Допустимі значення:
fmPictureAlignmentTopLeft – у верхньому лівому куті;
fmPictureAlignmentTopRight - у верхньому правому куті;
fmPictureAlignmentCenter у ценрі;
fmPictureAlignmentBottomLeft у нижньому лівому куті;
fmPictureAlignmentBottomRight у нижньому правому куті.
Список (ListBox)
Використовується для збереження списку значень, з якого користувач може вибрати одне або декілька значень, що в подальшому будуть використовуватися у програмі.
Основна подія списку – Click. Ця подія виникає, коли користувач за допомогою мишки чи клавіш управління вибирає елемент у списку.
Наведемо основні властивості:
Text – повертає вибраний у списку елемент
ListIndex – повертає номер вибраного у списку елементу. Нумерація починається з 0. Якщо жоден з елементів не вибраний, повертає -1
ListCount – повертає кількість елементів списку
TopIndex - повертає елемент списку з найбільшим номером
ColumnCount – задає кількість стовпців у списку
List – повертає елемент списку, що стоїть на перетині вказаного рядка і стовпця.
Selected – логічна властивість, що повертає значення True, якщо елемент списку вибраний і False в протилежному разі.
Список це перший з розглянутих нами елементів, для яких важливу роль відіграють методи
Основні методи списку
Clear – видаляє всі елементи зі списку
RemoveItem – видаляє елементи зі вказаним номером. Синтаксис: RemoveItem(Index), де Index це номер в списку
AddItem – добавляє елемент у список Синтаксис: AddItem([[,varIndex]]), де Item – елемент (строковий вираз), що добавляється varIndex – номер елемента, що добавляється.
а також BorderColor, BackColor, ForeColor, Font
Поле зі списком (ComboBox)
Використовується для збереження значень і поєднує у собі функціональні можливості списку і поля вводу. На відміну від списку у полі зі списком відображується тільки один елемент, який користувач може ввести через поле вводу. Режим виділення декількох елементів відсутній.
Основними подіями для поля зі списком є Click, що використовується для вибору елементу і Change - для зміни тексту у полі вводу.
Основні властивості, такі як ListIndex, ListCount, List та інші, основні методи Clear, RemoveItem, AddItem аналогічні властивостям і методам елемента список. Крім цього поле зі списком має майже всі властивості текстового поля (виключенням є властивість Multiline).
Смуга прокрутки (ScrollBar)
Використовується для встановлення числового значення, причому це може бути тільки ціле невід’ємне значення.
Основними подіями смуги прокрутки є Change і Scroll.
Change – виникає після зміни позиції бігунка або після після зміни у програмі властивості Value
Scroll – виникає, коли користувач натиснув ліву кнопку миші і, не відпускаючи її, тягне бігунок.
Основні властивості:
Value – повертає або встановлює поточне значення смуги прокрутки;
Min – мінімальне значення смуги прокрутки;
Max – максимальне значення смуги прокрутки;
SmallChange - встановлює крок зміни значення при натисканні на верхню чи нижню стрілку смуги прокрутки;
LargeChange – встановлює крок зміни значення при натисканні між верхньою чи нижньою стрілкою і повзунком смуги прокрутки;
Orientation – встановлює орієнтацію смуги прокрутки. Допускає такі значення:
fmOrientationAuto або (-1) – орієнтація залежить від розміру елементу управління (використовується по замовчуванню);
fmOrientationVertical або (0) – вертикальне положення;
fmOrientationHorizontal або (1) - горизонтальне положення.
