'Если пользователь ничего не ввел – выход из цикла.
'Ввод цены
theCost = Val(InputBox(«Цена товара», «Выписка Квитанции»))
'Запись наименования и цены товара в рабочий лист
OutputRange.Cells(NumItems, 1).Formula = theItem
OutputRange.Cells(NumItems, 2).Formula = Str(theCost)
NumItems = NumItems + 1 'Увеличение счетчика штук товара
TotalIt 'Вычисление и печать результатов,
‘ Делаем процедуру Totalit процедурой,
‘ вызываемой по событию в рабочем листе
theSheet.OnEntry = “Totalit” ‘ Пересчет результатов,
'если пользователь делает изменения
'
' Вычисление суммы и итога
‘
Sub TotalIt()
Dim theRow As Integer
Dim SubTotal As Currency, ItemTax As Currency
Dim theTotal As Currency
SubTotal = 0
'Вычисление итога по величинам в рабочем листе
SubTotal = SubTotal + Val(OutputRange.Cells(theRow, 2).Value)
Next theRow
'Запись суммы, налога и итога в рабочий лист.
With OutputRange
.Cells(MaxNumItems + 1, 1).Formula = «Сумма»
.Cells(MaxNumItems + 1, 2).Formula = Str(SubTotal)
.Cells(MaxNumItems + 2, 1).Formula = «Налог»
ItemTax = theTax(SubTotal) ‘Расчет налога
.Cells(MaxNumItems + 2, 2).Formula = Str(ItemTax)
theTotal = SubTotal + ItemTax
.Cells(MaxNumItems + 3, 1).Formula = «Итог»
.Cells(MaxNumItems + 3, 2).Formula = Str(theTotal)
End Sub
'
'Очистка выходного диапазона
‘
Sub ClearRange(theRange As Object)
Dim theRow As Integer
For theRow = 1 To MaxNumItems + 3
'Очистка ячеек. ClearContents используется только для
'очистки ячеек, а не для форматирования
theRange.Cells(theRow, 1).ClearContents
theRange.Cells(theRow, 2).ClearContents
Next theRow
End Sub
'
'Печать квитанции
'
Sub PrintReceipt()
theSheet.OnEntry = “ “ 'Отключение автоматической
'коррекции результата
theSheet.Range(«Диапазон_Печати»).PrintOut 'Печать
'рабочего листа
'
'Расчет налога.
‘
Function theTax(Cost As Currency) As Currency
Const TaxRate = 0.085
theTax = Cost * TaxRate
End Function
4. Для проверки правильности записанной программы выберите команду меню Запуск – Запуск подпрограммы/UserForm.
5. При отсутствии ошибок в программе на экране появится диалоговое окно «Макрос». Нажмите кнопку «Отмена».
6. При наличии ошибок следует исправить их, выбрать команду меню Запуск – Сброс и заново запустить программу на выполнение.
1.3. Подключение процедур к кнопкам.
1. Перейдите на рабочий лист «Квитанция» и выведите на экран панель инструментов Формы.
2. Выберите инструмент «Кнопка» и в левом верхнем углу рабочего листа в столбцах D и E создайте кнопку. Назначьте этой кнопке макрос «getEntries». Переименуйте название кнопки на Выписка квитанции.
3. Под ней аналогично создайте вторую кнопку Печать квитанции, назначив ей макрос PrintReceipt.
4. Закройте панель инструментов Формы.
5. Сохраните рабочий лист в книге под названием Пример_1. Примерный вид готового рабочего листа приведен в Приложении 1.
1.4. Применение созданного приложения.
1. Для выдачи квитанции нажмите кнопку «Выписка Квитанции».
2. Заполните все диалоговые окна информацией из Таблицы №1.
3. В конце списка нажмите клавишу <Enter> или кнопку «Отмена» в диалоговом окне «Выписка квитанции». Произойдет подсчет итога и его отображение в квитанции.
4. Для печати квитанции нажмите кнопку «Печать Квитанции». При отсутствии принтера дождитесь появления диалогового окна и отмените печать.
5. Продемонстрируйте результаты работы преподавателю.
II. Самостоятельная работа.
Рекомендуемое время
20 минут
Задание:
Создайте копию рабочей книги Пример_1.xls под своим именем. Создайте на базе разработанного приложения новое приложение, в которое добавьте ввод количества товара, уменьшите количество наименований вводимого товара до 4, при расчете налога учтите количество товара. Продемонстрируйте результаты работы преподавателю.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.