Самоучитель VBA


         

выводимый на рабочем листе программой


/p>
а)

б)

Рис. У4.3. Сообщения о несогласованности вводимых данных



Рис. У4.4. Отчет, выводимый на рабочем листе программой расчета амортизации



































Нажатие кнопки отмена запускает на выполнение процедуру

CommandButton2_Click



Закрывает диалоговое окно.



Private Sub CommandButtonl_Click()

' Процедура расчета амортизации

'

Dim В As Double

Dim E As Double

Dim A As Double

Dim Ye As Integer

Dim Yc As Integer

Dim k As Integer

Dim Flag As Boolean

'

' В - первоначальная стоимость оборудования, для которого

' подсчитывается амортизация

' Е - остаточная стоимость оборудования

' Ye - время полной „амортизации

' Yc - период, для которого рассчитывается амортизация

' Flag - логическая переменная, равная True, если амортизация

' рассчитывается стандартным методом, и False, если методом

' k-кратного учета

Dim n As Integer

Dim j As Integer

' n, j - вспомогательные переменные, используемые для удаления

' ранее созданных графических объектов

'

' Считывание в переменные из диалогового окна значений параметров

В = CDbl(TextBoxl.Text)

Е = CDbl(TextBox2.Text)

Ye = CInt(TextBox3.Text)

Yc = CInt(TextBox4.Text)

' Проверка согласованности вводимых данных

'

If В < Е Then

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

TextBoxl.SetFocus

Exit Sub

End If

If Ye < Yc Then

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

TextBox3.SetFocus

Exit Sub

End If

'

' Определение выбранного переключателя:

' если Стандартный, то переменной Flag присваивается True;

' если k-кратного учета, то переменной Flag присваивается False

'

If OptionButtonl.Value = True Then

Flag = True

Else

Flag = False

End If

' Расчет амортизации в зависимости от выбранного метода

'

If Flag = True Then

'

' Стандартным методом

A = Application.SYD(В, Е, Ye, Yc)

Else

' Методом k-кратного учета

'

k = CInt(TextBox6.Text)

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


Содержание  Назад  Вперед