1. Загрузить EXCEL. Сохранить рабочую книгу с именем Lab4.xls.
2. Перейти в редактор VBA. (Сервис\Макрос\Редактор Visual Basic).
3. Добавить 3 формы в проект. (Вставка\UserForm).
4. Переименовать формы в "Главная", "Сведения" и "Справочник", используя окно свойств каждой формы.
5. В форму "Главная" добавить 4 кнопки:
Name- cm _ 1, Caption - "Сведения",
Name -cm_2. Caption -"Справочник",
Name- cm_3, Caption "Обработка"
Name - cm_4, Caption "Выход".
Для переименования кнопок использовать окно свойств каждой из этих кнопок.
6. В форму "Сведения" добавить 3 поля с именами TextBox1, TextBox2, TextBox3. Рядом с этими полями соответственно добавить три надписи: "Табельный номер", "Фамилия", "Разряд" и две кнопки:
Name - cm_ok. Caption - "OK"
Name - cm_exit, Caption - "Выход".
7. В форму "Справочник" добавить 2 поля с именами TextBox1и TextBox2. Рядом с этими полями соответственно добавить две надписи: "Разряд", " Оклад".
Две кнопки:
Name -cm_ok, Caption -"OK"
Name -cm_exit, Caption -"Выход".
8. Проверить вид каждой формы (Запуск\3апуск подпрограммы/UserForm)
|
|
9. Назначить каждой кнопке соответствующую процедуру (VBA-код).
Для этого дважды щелкнуть по каждой из вставленных в формы кнопок в режиме конструктора и ввести в окне редактора VBA текст соответствующей процедуры.
В форме "Главная" кнопке cm_1 ("Сведения") назначить процедуру:
Private Sub cm_l_Click()
Sheets(1).Activate
Range("A:D").Clear
ActiveSheet.Cells(1, 1) = "Таб. номер"
ActiveSheet.Cells(l, 2) = "Фамилия"
ActiveSheet.Cells(l, 3) = "Разряд"
Cells(1, 1).Activate
Сведения.Show
End Sub
В форме "Главная" кнопке cm_2 ("Справочник") назначить процедуру:
Private Sub cm_2_Click()
Sheets(2).Activate
Range("A:D").Clear
ActiveSheet.Cells(1, 1) = "Разряд"
ActiveSheet.Cells(1, 2) = "Оклад"
Cells(1, 1).Activate
Справочник.Show
End Sub
В форме "Главная" кнопке cm_3 ("Обработка") назначить процедуру:
Private Sub cm_3_Click()
Calculation
End Sub
В форме "Главная" кнопке cm_4 ("Выход") назначить процедуру:
Private Sub cm_4_Click()
End
End Sub
В форме "Сведения" кнопке cm_OK ("OK") назначить процедуру:
Private Sub cm_OK_Click()
Dim i As Integer
Sheets(1). Activate
ActiveCell.Offset(1, 0).Activate
i = ActiveCell.Row
' вместо предыдущих двух. строк для записи данных в
' ту же книгу можно использовать оператор:
' i = Range("Al").CurrentRegion.Rows.Count+1
ActiveSheet.Cells(i, 1) = TextBox1
ActiveSheet.Cells(i, 2) = TextBox2
ActiveSheet.Cells(i, 3) = TextBox3
i = ActiveCell.Row + 1
End Sub
В форме "Сведения" кнопке cm_exit ("Выход") назначить процедуру:
Private Sub cm_exit_Click()
Hide
End Sub
В форме "Справочник" кнопке cm_OK ("OK") назначить процедуру:
Private Sub cm_OK_Click()
Dim i As Integer
Sheets(2).Activate
ActiveCell.Offset(1,0).Activate
i = ActiveCell.Row
ActiveSheet.Cells(i, 1) = TextBox1
ActiveSheet.Cells(i, 2) = TextBox2
i = ActiveCell.Row + 1
End Sub
В форме "Справочник" кнопке cm_exit ("Выход") назначить процедуру:
|
|
Private Sub cm_exit_Click()
Hide
End Sub
10. Вставить в модуль (Модуль1) процедуру Calculation, для этого в окне проекта (Вид\Окно проекта) предварительно выделить Модуль1 и ввести текст:
Sub Calculation()
Sheets(3).Activate
Range("A:D").Clear
ActiveSheet.Cells(1, 1) = "Таб.номер"
ActiveSheet.Cells(1, 2) = "Фамилия"
ActiveSheet.Cells(1, 3) = "Коэффициент"
ActiveSheet.Cells(1, 4) = "Начислено"
i=2
J=2
Do While Sheets(1).Cells(j, 1) <> ""
ActiveSheet.Cells(i, 1)= Sheets(l).Cells(j, 1)
ActiveSheet.Cells(i, 2) = Sheets(1).Cells(j, 2)
ActiveSheet.Cells(i, 3) = InputBox("Коэффициент <=1",, "1")
k=2
Do While Sheets(2).Cells(k, 1) <> ""
If Sheets(1).Cells(j, 3) = Sheets(2).Cells(k, 1) Then
ok = Sheets(2).Cells(k, 2)
End If
k=k+1
Loop
ActiveSheet.Cells(i, 4) = ActiveSheet.Cells(i, 3) * ok
J=J+1
i = i+ 1
Loop
End Sub
11. Добавить на рабочий лист кнопку:
Name – cm, Caption - "Расчет зарплаты"
и назначить ей в режиме конструктора процедуру:
Private Sub cm_Click()
Главная.Show
End Sub
- Используя кнопку "Расчет зарплаты" на рабочем листе, выполнить построенное приложение.
ЛАБОРАТОРНАЯ РАБОТА №5.