Практическая работа №4 в VBA
Задание:
-
Составить таблицу на 10 записей, заполнить столбец с фамилиями и оклад.
Фамилия |
Оклад |
январь |
февраль |
март |
апрель |
май |
-
В редакторе Visual Basic сделать форму и разместить на ней объекты, приведенные на рисунке.
-
Переименовать следующие объекты (изменить свойство Name):
‘ text box1 для кода доступа переименовать name=код
‘ combobox1 для месяца переименовать name=месяц
‘ combobox2 для премии переименовать name=премия
‘ commandbutton1 для “расчет” переименовать name=расчет
‘commandbutton2 для “сумма за месяц” переименовать name=расчет2
‘commandbutton3 для “очистить столбец” переименовать name=очистка
‘commandbutton4 для “о программе” переименовать name=инфо
-
Скопируйте и вставьте текст программы (выделенное бирюзовым цветом – на повышенную оценку). Выполнить задания, выделенные желтым цветом. Проверить программу на ошибки.
Private Sub UserForm_Initialize()
‘список месяцев
месяц.AddItem “январь”
месяц.AddItem “февраль”
месяц.AddItem “март”
‘дополнить недостающие записи для месяцев
‘список размеров премии
премия.AddItem 5
премия.AddItem 10
премия.AddItem 15
End Sub
Private Sub расчет_Click()
‘определение номера месяца по его названию
Select Case месяц.Value
Case “январь”
номер=1
Case “февраль”
номер=2
Case “март”
номер=3
‘дополнить недостающие записи для месяцев
End Select
‘дописать текст программы. Если введен неправильный код доступа – то
‘вывести соответствующее сообщение и выйти из программы. Код доступа ‘устанавливается самостоятельно (дополнительное задание)
пример If <условие> then
k=MsgBox(…..)
Exit Sub
End If
‘дописать текст программы. Если не выбран месяц или величина премии – то
‘вывести соответствующее сообщение и выйти из программы
‘(дополнительное задание)
пример If <условие> then
k=MsgBox(…..)
Exit Sub
End If
‘расчет и вывод зарплаты для текущего месяца
For n=2 to 11
Cells(n,номер+2)= Cells(n,2)+Cells(n,2)*премия/100
Next n
End Sub
Private Sub расчет2_Click()
‘определение номера месяца по его названию, второй более удобный способ
номер=месяц.ListIndex+1
сумма =0
‘расчет суммарной зарплаты по выбранному месяцу
For n=2 to 11
сумма= Cells(n,номер+2)+сумма
Next n
‘вывод суммарной зарплаты по выбранному месяцу
Cells(13,номер+2)= сумма
End Sub
Private Sub инфо_Click()
‘написать подпрограмму для вывода сообщения об авторе и назначении ‘программы
End Sub
Private Sub очистка_Click()
‘для выбранного месяца при помощи цикла заполнить соответствующий столбец пустыми значениями‘(дополнительное задание)
номер=месяц.ListIndex+1
пример
For n=2 to 11
Cells(….)= ….
Next n
End Sub