ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.08.2020
Просмотров: 2521
Скачиваний: 4
6.3 Приклад виконання лабораторної роботи.
Задача 6.3.1 В клітинці D2 знаходиться число Х. Підрахувати всі степені числа X, які менш ніж 1000. Записати їх на Лист Excel в два стовпчика: в одному стовпці - показник степені, в другому - її значення.
Текст програми
Sub степінь()
Dim x As Single, st As Single
' st – змінна для накопичення значень х в степені
Dim i As Integer, k As Integer ' i - номер строки, k - степінь
Range("A1").Value = "k"
Range("B1").Value = "x^k"
Range("D1").Value = "x"
Range("A1:D1").HorizontalAlignment = xlCenter
‘ Вирівнювання по центру ‘
x = Range("D2").Value
st = x : i = 2 : k = 1
Do
Cells(i, 1).Value = k
Cells(i, 2).Value = st
Cells(i, 2).NumberFormat = "0.0000"
i = i + 1 : st = st * x : k = k + 1
Loop While st < 1000
End Sub
Рис 6.1 Результати роботи програми
Задача 6.3.2 В діапазоні А1:С19 знаходяться числа. Перевірити чи є серед них числа, що дорівнюють 3. Вивести повідомлення.
Текст програми
Sub задача2()
Dim r As Range
For Each r In Range("A1:С19")
If r.Value = 3 Then
r.Select
MsgBox "Є числo =3"
Exit Sub
' Як тільки зустрічається потрібне число, виділяється клітина,
' що його містить, і відбувається достроковий вихід з процедури
End If
Next
MsgBox "Немає чисел=3"
' Ця частини програми працює тільки, якщо таких значень немає.
End Sub
Р
ис.
6.2 Результати роботи програми
Задача 6.3.3 В діапазоні А1:D20 знаходяться числа, вільні клітки та текст. Знайти середнє арифметичне чисел.
Для розв’язку задачі перевіримо кожну клітину. Підрахуємо кількість клітин, в яких знаходяться числа, обчислимо їх суму й середнє арифметичне, а результат виведемо у вікні та на Лист Excel
Текст програми
Sub задача3()
Dim s As Single, kol As Single
Dim r As Range, i As Integer
' s – сума , kol – кількість
s = 0: kol = 0
For Each r In Range("A1:D20")
m = r.Value
If m <> "" And IsNumeric(m) = True Then
' перевірка того, що в клітині записане число
s = s + r.Value
kol = kol + 1
End If
Next
s = s / kol
' Пошук останнього рядка
i = 2
Do While Cells(i, 1) <> ""
i = i + 1
Loop
Cells(i, 1).Select
' Активізуємо перший вільний рядок
Cells(i, 1).Value = "Середня зарплата дорівнює"
Cells(i, 4).Value = s
Cells(i, 4).NumberFormat = "0.00"
Cells(i, 4).Select
MsgBox "Середнє значення з " & kol & " чисел =" & s
End Sub
Рис. 6.3 Результати роботи програми
Задача 6.3.4 В діапазоні B1:B20 знаходяться числа. Змінить колір фону клітин, що розташовані до мінімального значення.
Текст програми
Sub задача4()
Dim m As Single, r As Range
Dim i As Integer
' знаходження мінімуму
m = Range("B1").Value
For Each r In Range("B1:B20")
If m > r.Value Then m = r.Value
Next
' Розфарбовування
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 Контрольні питання
-
Елементи керування список і список, що розкривається, їхнє призначення, властивості і події, що з ними зв'язані.
-
Елемент керування перемикач, його властивості і події, що з ним зв'язані. Об'єднання перемикачів у групу.
-
Елемент керування лічильник, його властивості і події, що з ним зв'язані. Зв'язування текстового поля з лічильником.
-
Елемент керування командна кнопка, її властивості і події, що з нею зв'язані.
7.3 Приклад виконання лабораторної роботи
С
творимо
форму, що буде додавати запис в приведений
на рис. 7.1 список, розташований на Листі
Excel.
Рис. 7.1 Список клієнтів готелю
Праворуч списку на Листі Excel розташований вбудований об'єкт – командна кнопка з ім'ям CommandButton1, що викликає на екран діалогове вікно – форму з ім'ям UserForm1. У властивості Caption командної кнопки записаний текст «Реєстрація клієнта», у властивості Font зазначений розмір 10 і жирний.
Щоб вбудувати кнопку на Лист, виконайте наступні дії:
-
Натисніть кнопку “Конструктор” на панелі інструментів Visual Basic.
-
Натисніть кнопку «Елементи керування» на панелі інструментів Visual Basic.
-
Клацніть мишею на елементі керування Кнопка, а потім клацніть на Листі Excel. На Листі з'явиться кнопка з написом CommandButton1.
-
За допомогою правої кнопки миші викличте контекстне меню кнопки і відкрийте вікно властивостей. Змініть властивості Caption і Font як зазначено вище.
-
Щоб зв'язати з подією – 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