3. Программа «Вычисление НДС»
Задание. Создать программу «Вычисление НДС (налога на добавленную стоимость)», по которой по введенной процентной ставке налога и суммы (без проверки корректности введенных данных) выводится величина НДС () и сумма без налога. Если товар не облагается налогом, то процентную ставку налога принять за 0.
1. Запустить VBA и создать новый проект.
2. Переименовать форму - «Вычисление НДС».
3. Добавить на форму объекты (для всех неоговоренных специально объектов свойство Font – шрифт Tahoma, размер 12):
Объект |
Свойство |
Значение |
|
Label (надпись) |
Name |
LabelTop |
|
Caption |
Налог на добавленную стоимость |
||
Font |
Tahoma, 14 |
||
Frame (рамка) |
Name |
FrameSum |
|
Caption |
Стоимость |
||
Frame (рамка) |
Name |
FrameNDS |
|
Caption |
НДС |
||
Объект |
Свойство |
Значение |
|
CheckBox (флажок) |
Name |
CheckBox1 |
|
Caption |
Облагается налогом |
||
Value |
True (включен) |
||
Command Button (кнопка) |
Name |
CmdClear |
|
Caption |
Очистить |
||
Command Button (кнопка) |
Name |
CmdCalc |
|
Caption |
Вычислить |
||
Command Button (кнопка) |
Name |
CmdExit |
|
Caption |
Выход |
||
Следующие объекты располагаются на рамке FrameNDS (перед вставкой на поле, выделить рамку): |
|||
TextBox (текстовое поле) |
Name |
TextNDS13 |
|
Text |
13 (текст по умолчанию) |
||
BackColor |
(цвет фона) |
||
TextAlign |
2 |
||
Label (надпись) |
Name |
Label |
|
Caption |
% |
||
Следующие объекты располагаются на рамке FrameSum (перед вставкой на поле, выделить рамку): |
|||
Label (надпись) |
Name |
LabelSum |
|
Caption |
Сумма |
||
TextBox (текстовое поле) |
Name |
TextSum |
|
BackColor |
(белый) |
||
Text |
|
||
TextAlign |
3 |
||
Label (надпись) |
Name |
LabelNDS |
|
Caption |
НДС |
||
TextBox (текстовое поле) |
Name |
TextNDS |
|
BackColor |
(белый) |
||
TextAlign |
3 |
||
Enabled |
False |
||
Label (надпись) |
Name |
LabelNewSum |
|
Caption |
Сумма без НДС |
||
TextBox (текстовое поле) |
Name |
TextNewSum |
|
BackColor |
(белый) |
||
TextAlign |
3 |
||
Enabled |
False |
||
4. Включить проверку переменных (Option Explicit).
5. Запрограммировать щелчок на кнопке Выход на завершение программы и сделать ее кнопкой отмены.
6. Запрограммировать щелчок на кнопке Очистить: в рамке Стоимость все текстовые поля принимают нулевое значение (пустая строка), включается флажок Облагается налогом (значение True), курсор переводится в текстовое окно для суммы (метод SetFocus):
Private Sub CmdClear_Click()
’Текстовые поля обнуляются
TextSum = ""
TextNDS = ""
TextNewSum = ""
’Ставится флажок
CheckBox1 = True ’Курсор ставится в текстовое поле Сумма
TextSum.SetFocus End Sub
7. Запрограммировать щелчок на кнопке Вычислить.
Примечания.
§ Поскольку в текстовое поле могут быть ошибочно введены не только цифры, но и другие символы, то прежде чем использовать значение поля в вычислениях, переводим содержимое поля в число (функция Val).
§ Результаты вычислений – вещественные числа с несколькими знаками после запятой. Однако в реальной жизни денежные суммы вычисляются с точностью до сотых (копеек). Поэтому для вывода исходной суммы, НДС и суммы без НДС используем денежный формат (функция Format и аргумент "currency").
Private Sub CmdCalc_Click()
Dim S As Currency, N As Currency, SN As Currency
'Вычисления
S = Val(TextSum)
If CheckBox1 Then N = S * Val(TextNDS13) / 100 Else N = 0
SN = S – N
'Вывод на форму
TextSum = Format(S, "currency")
TextNDS = Format(N, "currency")
TextNewSum = Format(SN, "currency")
End Sub
ОБРАЗЕЦ
3. «Вычисление НДС» (задание 1).
Option Explicit
Private Sub CmdCalc_Click()
Dim S As Currency, N As Currency, SN As Currency
'Вычисления
S = Val(TextSum)
If Check Then N = S * Val(TextNDS13) / 100 Else N = 0
SN = S - N 'Вывод на форму
TextSum = Format(S, "currency")
TextNDS = Format(N, "currency")
TextNewSum = Format(SN, "currency")
End Sub
Private Sub CmdClear_Click()
TextSum = ""
TextNDS = ""
TextNewSum = ""
Check = True
TextSum.SetFocus
End Sub
Private Sub CmdExit_Click()
End
End Sub
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.