Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум3 по ИТ.doc
Скачиваний:
6
Добавлен:
26.08.2019
Размер:
3.67 Mб
Скачать

Задание II.

В данном задании рассмотрим пример оформления расчета амортизации двумя методами с использованием диалогового окна. Выбор методов амортизации производится с помощью переключателя. В случае использование k-кратного учета амортизации дополнительно вводится значение k..

  1. А налогично первому заданию, присвойте имя рабочему листу Амортизация, введите основные заголовки.

  2. В редакторе VB добавьте вторую форму Userform2 и разместите элементы управления как показано на рисунке:

Надпись Кратность метода, сопровождающее текстовое поле и счетчик при отображении формы не должны отображаться. Появлением и исчезновением в диалоговом окне элементов управления управляет свойство Visible. Это свойство возвращает true, если графический объект видим, и false – в противном случае.

Еще на этапе проектирования свойству Visible этих объектов присвойте значение false. Все остальное возьмет на себя процедура обработки.

  1. Все расчеты и заполнения будут выполнять процедуры. Для кнопки Очистить:

Private Sub CommandButton1_Click()

Dim i As Integer

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

TextBox4.Text = ""

TextBox5.Text = ""

TextBox6.Text = ""

Worksheets("Амортизация").Range("D1:D6").Clear

End Sub

4. Для кнопки Вычислить:

Private Sub CommandButton2_Click()

Dim B, E, A As Double

Dim Ye, Yc, k As Integer

Dim Flag As Boolean

B = CDbl(TextBox1.Text)

E = CDbl(TextBox2.Text)

Ye = CInt(TextBox3.Text)

Yc = CInt(TextBox4.Text)

SpinButton1.Min = 2

If B < E Then

MsgBox "Остаток больше начальной стоимости", vbExclamation, "Амортизация"

Exit Sub

End If

If Ye < Yc Then

MsgBox "Ошибка в сроке амортизации", vbExclamation, "Амортизация"

Exit Sub

End If

If OptionButton1.Value = True Then

Flag = True

Else

Flag = False

End If

If Flag = True Then

A = Application.SYD(B, E, Ye, Yc)

Else

k = CInt(TextBox6.Text)

A = Application.DDB(B, E, Ye, Yc, k)

End If

If A >= 0.01 Then A = Format(A, "Fixed") Else A = 0

TextBox5.Text = CStr(A)

With Worksheets("Амортизация")

.Range("D1").Value = B

.Range("D2").Value = E

.Range("D3").Value = Ye

.Range("D4").Value = Yc

.Range("D6").Value = A

If Flag = True Then

.Range("D5").Value = "стандартным методом"

Else

.Range("D5").Value = "методом " & CStr(k) & " кратного учета амортизации"

End If

End With

End Sub

  1. Для кнопки Отменить:

Private Sub CommandButton3_Click()

UserForm2.Hide

Unload Me

End Sub

  1. Соответственно, для 1 и 2 переключателей в рамке и для счетчика:

Private Sub OptionButton1_Click()

Label6.Visible = False

TextBox6.Visible = False

SpinButton1.Visible = False

End Sub

Private Sub OptionButton2_Click()

Label6.Visible = True

TextBox6.Visible = True

SpinButton1.Visible = True

SpinButton1.Min = 2

End Sub

Private Sub SpinButton1_Change()

With ActiveDialog

TextBox6.Text = CStr(SpinButton1.Value)

End With

End Sub

6. Добавьте в редакторе VB лист модуля и введите следующий код для вызова сформированного окна диалога:

Sub Amort()

UserForm2.Show

End Sub

7. На рабочем листе Амортизация, используя панель инструментов Формы, сформировать кнопку с именем Расчет амортизации и назначить ей макрос Amort.

  1. Протестируйте работу программы и результат выполнения продемонстрируйте преподавателю.