Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LabVBA-979.doc
Скачиваний:
8
Добавлен:
08.11.2018
Размер:
526.34 Кб
Скачать

' Розфарбовування

i = 1

Do While Cells(i, 2).Value > m

Cells(i, 2).Interior.ColorIndex = 54

i = i + 1

Loop

End Sub

7 Лабораторна робота № 7

Тема: Створення інтерфейсу користувача для роботи з даними, що зберігаються в таблиці.

Мета роботи: навчитися створювати зручний інтерфейс користувача для роботи на Листі Excel

7.1 Завдання: Створіть форму для введення нових даних у список, який Ви створили за індивідуальним завданням у лаборатор­ній роботі з Excel. Форма повинна викликатися натисканням на кнопку, вбудовану на робочий Лист поруч зі списком, або розміщену на панелі інструментів. У формі повинні бути присутні такі елементи керування: текстове поле, список, що розкривається, перемикач, лі­чильник і командна кнопка. Програма, призначена на кнопку, повинна знаходити перший вільний рядок наприкінці списку на Листі і зано­сити в неї дані з елементів керування форми. Величини, , які розрахо­вувалися на Листі Excel за формулами, повинні бути обчислені в програмі, показані в текстових полях форми, а необхідні формули занесені до клітин списку.

7.2 Контрольні питання

  1. Елементи керування список і список, що розкривається, їхнє призначення, властивості і події, що з ними зв'язані.

  2. Елемент керування перемикач, його властивості і події, що з ним зв'язані. Об'єднання перемикачів у групу.

  3. Елемент керування лічильник, його властивості і події, що з ним зв'язані. Зв'язування текстового поля з лічильником.

  4. Елемент керування командна кнопка, її властивості і події, що з нею зв'язані.

7.3 Приклад виконання лабораторної роботи

С творимо форму, що буде додавати запис в приведений на рис. 7.1 список, розташований на Листі Excel.

Рис. 7.1 Список клієнтів готелю

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

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

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

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

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

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

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

Sub CommandButton1_Click()

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

End Sub

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

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

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

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

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

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

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

Клітка

Уміст клітки

М3

Люкс

М4

Одномісний

М5

Двомісний

М6

Тримісний

Рис. 7.2 Діалогове вікно користувача – форма 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

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