Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекції VBA.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.17 Mб
Скачать

5.2 Приклади створення форм

Приклад 5.2. Створимо просту форму, що вводить два числа, дозволяє вибрати арифметичну операцію, яку необхідно зробити над числами, і виводить результат.

На малюнку 8 приведене вікно форми в режимі конструктора, що містить:

  • три текстових поля TextBox1, TextBox2, TextBox3 для введення двох чисел і виведення результату;

  • групу перемикачів OptionButton1, OptionButton2, OptionButton3, OptionButton4 для вибору операції; властивості Caption кожного перемикача замінені знаками операцій;

  • командну кнопку CommandButton1для запуску процедури обчислення; властивість Caption кнопки замінено словом «Обчислити»;

  • напису біля текстових полів, що пояснюють їхнє призначення.

К рім того, на екрані видно вікно проекту, вікно властивостей поля TextBox3, вікно елементів керування.

Мал. 8. Конструювання форми приклада 5.2.

З кнопкою CommandButton1 пов'язана процедура, що починає працювати при щиголі мишею на кнопці. Щоб написати текст процедури, необхідно двічі клацнути на кнопці при конструюванні форми. Відчиняється вікно коду, у якому записуємо приведений нижче текст. Заголовок процедури і її ім'я будуються автоматично, тому що ім'я зв'язується з ім'ям об'єкта і подією, за якою запускається процедура.

Private Sub CommandButton1_Click()

Dim x As Single, y As Single, r As Single

If IsNumeric(TextBox1. Value) Then

x = TextBox1. Text

Else

MsgBox "Введіть перше число"

TextBox1. SetFocus

End If

If IsNumeric(TextBox2. Value) Then

y = TextBox2. Text

Else

MsgBox "Введіть друге число"

TextBox2. SetFocus

End If

If OptionButton1. Value Then

z = x + y

TextBox3. Text = z

End If

If OptionButton2. Value Then

z = x - y

TextBox3. Text = z

End If

If OptionButton3. Value Then

z = x * y

TextBox3. Text = z

End If

If OptionButton4. Value Then

If y = 0 Then

MsgBox "Неприпустиме значення знаменника"

TextBox2. SetFocus

Else

z = x / y

TextBox3. Text = z

End If

End If

End Sub

П риклад 5.3. Створимо форму, що буде добавляти запис в приведений на мал. 9 список, розташований на листі Excel.

Мал. 9. Список клієнтів готеля.

Збоку списку на листі Excel розташований впроваджений об'єкт - командна кнопка з ім'ям CommandButton1, що викликає на екран діалогове вікно - форму з ім'ям UserForm1. У властивості Caption командної кнопки записаний текст «Реєстрація клієнта», у властивості Font зазначений розмір 10.

Щоб упровадити кнопку на лист, виконайте такі дії:

  1. Натисніть кнопку “Конструктор” на панелі інструментів Visual Basic.

  2. Натисніть кнопку «Елементи керування» на панелі інструментів Visual Basic.

  3. Клацніть мишею на елементі керування Кнопка, а потім клацніть на листі Excel. На листі з'явиться кнопка з написом CommandButton1.

  4. Щиголем правої кнопки миші викликайте контекстне меню кнопки і відчиніть вікно властивостей. Змініть властивості Caption і Font як зазначено вище.

  5. Щоб зв'язати з подією - щиголь миші на кнопці - процедуру виклику форми, двічі клацніть на кнопці. Відчиниться вікно модуля, у котрому вже побудований заголовок процедури за таким правилом: спочатку вказується ім'я об'єкта, а потім після символу “ _ ” -ім'я події, при якому визивається процедура. Запишемо такий текст:

Sub CommandButton1_Click()

UserForm1. Show ‘активизація форми з ім'ям UserForm1

End Sub

Тепер перейдемо до конструювання форми для додавання даних про нового клієнта в список. Для цього відчиніть вікно редактора Visual Basic, вставте новий об'єкт UserForm і розмістіть на ньому елементи керування, як показано на мал. 10.

У формі розташовані такі елементи керування:

  • Текстове поле TextBox1, розташоване поруч із написом «Прізвище». Стандартні властивості цього поля не змінювалися при конструюванні.

  • Текстове поле TextBox2 для введення імені і по батькові клієнта.

  • Група перемикачів: OptionButton1, у якого властивість Caption замінена на слово «чоловік», і OptionButton2, у якого властивість Caption замінена на слово «жінка».

  • Група прапорців: CheckBox1, у якого властивість Caption замінена на «Оплачено», і CheckBox2, у якого властивість Caption замінена на «Паспорт зданий».

  • Список , що розкривається , ComboBox1. У цього об'єкта була змінена властивість RowSource, для якого зазначений діапазон

клітин активного листа, що містить список усіх типів номерів готеля: М3:М6. У цих клітинах утримуються такі дані:

Клітина

Вміст клітини

М3

Люкс

М4

Одномісний

М5

Двомісний

М6

Тримісний

Мал. 10. Діалогове вікно користувача - форма UserForm1 у режимі конструювання.

  • Текстове поле TextBox3 для відображення значення лічильника SpinButton1.

  • Лічильник SpinButton1. Властивість Value цього елемента керування змінюється на 1 при кожному щиголі на одну зі стрілок.

  • Кнопка CommandButton1, властивість Caption цієї кнопки змінено на «ОК». З кнопкою пов'язана процедура занесення даних про клієнта в перший вільний рядок, що знаходиться за списком. Текст процедури:

Private Sub CommandButton1_Click()

Dim ks As Integer

Range("A1"). Select

ks = ActiveCell. CurrentRegion. Rows. Count ' Підрахунок кількості

зайнятих рядків у списку

ActiveCell. Offset(ks, 0). Select 'Активизація першого

вільного рядка списку

ActiveCell. Value = TextBox1. Text в список пишемо прізвище

ActiveCell. Offset(0, 1). Value = TextBox2. Text в сусідню клітину

пишемо ім'я і по батькові

If OptionButton1. Value = True Then ‘якщо відзначений перший

ActiveCell. Offset(0, 2). Value = "чоловік" перемикач, то

Else

ActiveCell. Offset(0, 2). Value = "дружин"

End If

ActiveCell. Offset(0, 3). Value = ComboBox1. Value ‘Пишемо тип

номера, обраний із списку

If CheckBox1. Value = True Then ‘Якщо відзначений прапорець

«Оплачено», то

ActiveCell. Offset(0, 4). Value = "да" ‘записуємо слово «да»

Else

ActiveCell. Offset(0, 4). Value = "ні"

End If

If CheckBox2. Value = True Then ‘Якщо відзначений прапорець

«Паспорт зданий», то

ActiveCell. Offset(0, 5). Value = "да" ‘записуємо слово

«да» у п'ятий стовпчик

Else

ActiveCell. Offset(0, 5). Value = "ні"

End If

ActiveCell. Offset(0, 6). Value = SpinButton1. Value ‘ шостий

стовбчик пишемо значення лічильника

End Sub

  • Командна кнопка CommandButton2, у якої властивість Caption змінена на слово «Да». З цією кнопкою пов'язана процедура, що очищає всі елементи керування у формі, підготовлюючи їх для введення даних про нового клієнта. Текст процедури:

Private Sub CommandButton2_Click()

TextBox1. Text = ""

TextBox2. Text = ""

TextBox3. Text = ""

CheckBox1. Value = False

CheckBox2. Value = False

SpinButton1. Value = 0

End Sub

Така процедура призначена для відображення значення лічильника в текстовому полі TextBox3:

Private Sub SpinButton1_Change()

TextBox3. Value = SpinButton1. Value

End Sub

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]