Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_11_VBA.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
12.11 Mб
Скачать

Блок-схема алгоритму:

Програма:

Лекція №6.

Тема: Програмування на мові VBA. Створення форм VBA (UserForm). Елементи управління VBA. Властивості елементів управління. Події для елементів управління. Створення процедур обробки подій. Арифметичні цикли.

Форма. Елементи управління

Форма це діалогове вікно, яке створюється для того, щоб користувачу було зручно працювати з вашою програмою. На формі зазвичай на початковому етапі конструювання додатку розміщуються елементи управління.

Для створення форми потрібно виконати команду InsertUserForm або натиснути відповідну кнопку 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) - горизонтальне положення.