- •Міністерство освіти і науки України
- •Лабораторна робота №1 Тема “Редактор Visual Basic”
- •1. Вікно редактора
- •2. Вікно проектів
- •3. Вікно властивостей об’єкта
- •Лабораторна робота №2 Тема “Редактор Visual Basic”
- •1. Вікно програми
- •2. Вікно форми
- •Лабораторна робота №3 Тема “Макроси у vba”
- •1.Підпрограми і функції
- •2. Створення макросів
- •3. Редагування макросів
- •4. Установлення параметрів редактора Visual Basic
- •Лабораторна робота №4 Тема “Уведення vba-коду, оператори vba”
- •Лабораторна робота №5 Тема “Типи даних”
- •1. Числовий тип даних
- •2. Символьний тип даних
- •3. Інші типи даних
- •Лабораторна робота №6 Тема “Оголошення і використання змінних”
- •Лабораторна робота №7
- •Лабораторна робота №9 Тема “Взаємодія vba з користувачем”
- •1. Функція MsgBox
- •2. Функція InputBox
- •3. Створення підпрограм і функцій користувача
- •4.2. Програмування форми
- •Процедура, оголошена як “ Private”, може бути використана тільки в даному модулі. Форма використовується для введення даних користувачем і збереження їх у робочій книзі.
- •4.3. Списки, які розгортаються або прокручуються
- •4.4. Використання прапорців, перемикачів і рамок
- •4.5. Використання вимикачів і лічильників
- •4.6. Використання набору сторінок і набору вкладок
- •Завдання (типове) для курсової роботи
- •Приклад виконання
- •Поле-список “Фах”
- •Поле “Коефіцієнт”
- •Кнопка “Наступний”
- •Кнопка “Попередній”
- •Кнопка “Редагувати”
- •Поле-список “Розряд”
- •Поле “Тариф”
- •Активізація форми
- •Кнопка “Вихід”
- •Поле “Відпрацьовано змін”
- •Кнопка “Записати”
Кнопка “Редагувати”
Private Sub red_Click()
i = 2
'Змінні
x1 = nom.Text
x2 = pr.Text
x3 = st.Text
x4 = vz.Text
x5 = nar.Text
x6 = pod.Text
x7 = vn.Text
x8 = dv.Text
x9 = fah.Text
x10 = koef.Text
x11 = roz.Text
x12 = tar.Text
x13 = prof.Text
'Кнопки
pop.Enabled = False
nas.Enabled = False
dop.Enabled = False
red.Enabled = False
vid.Enabled = True
zap.Enabled = True
vih.Enabled = False
'Доступ до полів
pr.Enabled = True
st.Enabled = True
vz.Enabled = True
fah.Enabled = True
roz.Enabled = True
'Курсор
pr.SetFocus
End Sub
Поле-список “Розряд”
Private Sub roz_Change()
'Нова змінна
x20 = ActiveCell.Address
'Довідник фахів
Range("f3").Select
Do While ActiveCell.Value <> ""
If ActiveCell.Value = roz.Text Then
jr = ActiveCell.Offset(0, 1).Value
End If
ActiveCell.Offset(1, 0).Select
Loop
'Поле довідника
tar.Text = jr
'Наступний вибір
Range(x20).Select
End Sub
Поле “Тариф”
Private Sub tar_Change()
'Розрахунок
nar.Text = Str(Int(jf * jr * Val(vz.Text) * 100) / 100)
pod.Text = Str(Int(jf * jr * Val(vz.Text) * 13) / 100)
prof.Text = Str(Int(jf * jr * Val(vz.Text) * 1) / 100)
vn.Text = Str(Int(jf * jr * Val(vz.Text) * 5) / 100)
dv.Text=Str(Int((Val(nar.Text)-Val(pod.Text)-Val(prof.Text)-Val(vn.Text))*100)/100)
End Sub
Активізація форми
Private Sub UserForm_Activate()
'Довідники
Range("b3").Select
Do While ActiveCell.Value <> ""
fah.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
Range("f3").Select
Do While ActiveCell.Value <> ""
roz.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
s1 = 0
'Розрахунок
Range("u3").Select
Do While ActiveCell.Value <> ""
s1 = s1 + ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
'Результат
nnn.Text = s1
'Таблиця розподілу
Range("i3").Select
nom.Text = ActiveCell.Value
pr.Text = ActiveCell.Offset(0, 1).Value
st.Text = ActiveCell.Offset(0, 2).Value
vz.Text = ActiveCell.Offset(0, 5).Value
nar.Text = ActiveCell.Offset(0, 8).Value
pod.Text = ActiveCell.Offset(0, 9).Value
prof.Text = ActiveCell.Offset(0, 10).Value
vn.Text = ActiveCell.Offset(0, 11).Value
dv.Text = ActiveCell.Offset(0, 12).Value
fah.Text = ActiveCell.Offset(0, 3).Value
koef.Text = ActiveCell.Offset(0, 6).Value
roz.Text = ActiveCell.Offset(0, 4).Value
tar.Text = ActiveCell.Offset(0, 7).Value
'Доступ до полів
nom.Enabled = False
pr.Enabled = False
st.Enabled = False
vz.Enabled = False
nar.Enabled = False
pod.Enabled = False
vn.Enabled = False
dv.Enabled = False
fah.Enabled = False
koef.Enabled = False
roz.Enabled = False
tar.Enabled = False
prof.Enabled = False
End Sub
Кнопка “Відмінити”
Private Sub vid_Click()
'Змінні
nom.Text = x1
pr.Text = x2
st.Text = x3
vz.Text = x4
nar.Text = x5
pod.Text = x6
vn.Text = x7
dv.Text = x8
fah.Text = x9
koef.Text = x10
roz.Text = x11
tar.Text = x12
prof.Text = x13
'Кнопки
pop.Enabled = True
nas.Enabled = True
dop.Enabled = True
red.Enabled = True
vid.Enabled = False
zap.Enabled = False
vih.Enabled = True
'Доступ до полів
pr.Enabled = False
st.Enabled = False
vz.Enabled = False
fah.Enabled = False
roz.Enabled = False
End Sub
Кнопка “Вихід”
Private Sub vih_Click()
Unload zarplata
End Sub
Поле “Відпрацьовано змін”
Private Sub vz_Change()
'Розрахунок
nar.Text = Str(Int(jf * jr * Val(vz.Text) * 100) / 100)
pod.Text = Str(Int(jf * jr * Val(vz.Text) * 13) / 100)
prof.Text = Str(Int(jf * jr * Val(vz.Text) * 1) / 100)
vn.Text = Str(Int(jf * jr * Val(vz.Text) * 5) / 100)
dv.Text=Str(Int((Val(nar.Text)-Val(pod.Text)-Val(prof.Text)-Val(vn.Text))*100)/100)
End Sub