Офисное программирование
Шрифт:
Под амортизацией понимают уменьшение стоимости имущества (основных средств) в процессе эксплуатации. Обычно оценивают величину этого уменьшения, приходящуюся на единицу времени. В финансовый пакет VBA включены три функции для расчетов амортизации (табл. 21).
Таблица 21
Функция SLN
SLN(cost, salvage, life) =SLN(стоимость, остаток, период)
Пусть компьютер стоимостью 6000 руб. имеет срок эксплуатации 5 лет, после чего его стоимость оценивается в 1500 руб. Тогда его ежегодная амортизация составит (при равномерном методе оценки): SLN(6000,1500, 5) = 900 руб.
Функция SYD используется для расчета годовой амортизации по линейному методу. Сумма долей амортизации в этом методе определяется как сумма номеров лет эксплуатации:
1+2+…+ life = life(life+1)/2,
а доля амортизации за i-й год пропорциональна количеству лет (life – i +1), оставшихся до конца периода эксплуатации. Синтаксис этой функции:
SYD(cost, salvage, life, period) =SYD(стоимость, остаток, время_экспл, период)
При расчете предыдущего примера получим за первый год эксплуатации компьютера амортизацию
SYD(6000,1500,5,1)= 1500 руб.
а за последний год —
SYD(6000,1500,5,5)= 300 руб.
Примечание. Все параметры указываются через запятую.
Функция DDB вычисляет величину амортизации имущества для заданного периода с применением метода двукратного (или k-кратного) учета амортизации. В этом методе амортизация максимальна в первый период и снижается в последующие периоды.
Синтаксис:
DDB(cost, salvage, life, periodi, factor)=DDB(нач_ стоим, остаток, время_экспл, период, коэффициент)
Параметр factor (коэффициент) – это норма снижения балансовой стоимости (амортизации). По умолчанию он равен 2 (метод двукратного учета амортизации).
Функция DDB использует следующую формулу для вычисления амортизации за период:
Если нужно использовать другой метод вычисления амортизации, измените значение коэффициента.
В примере с компьютером по методу двукратной амортизации она составит:
за первый год: DDB(6000,1500, 5,1) = 2400 руб.;
за второй – 1440 руб.;
за третий – 660 руб.;
а за четвертый и пятый будет равна 0.
Все пять аргументов должны быть положительными числами.
Замечания. Метод двойного процента со снижающегося остатка вычисляет амортизацию, используя увеличенный коэффициент. Амортизация максимальна в первый период, в последующие периоды уменьшается.
Примеры. Предположим,
ddb(2400,300,3650,1) равняется 1,32 $, амортизация за первый день.
Microsoft Excel автоматически предполагает, что коэффициент равен 2.
ddb(2400,300,120,1) равняется 40,00 $, амортизация за первый месяц.
ddb(2400,300,10,1) равняется 480,00 $, амортизация за первый год.
ddb(2400,300,10,2,1,5) равняется 306,00 $, амортизация за второй год при использования коэффициента, равного 1,5 (а не метода двойного процента).
ddb(2400,300,10,10) равняется 22,12 $, амортизация за десятый год. Microsoft Excel автоматически предполагает, что коэффициент равен 2.
Пример 52. Создать программу, которая по введенным данным в текстовые поля формы рассчитывает амортизацию имущества за заданный период времени с использованием метода двукратного учета. Диалоговое окно расчета амортизации должно предусматривать: ввод исходных данных (начальная и остаточная стоимости, срок эксплуатации в годах), задание параметров амортизации (день, месяц, год и какой по счету). Вычисление амортизации по заданным условиям и вывод отчета произвести на рабочий лист excel. При этом следует предусмотреть, чтобы кнопка «Вывести отчет» являлась недоступной до вычисления амортизации.
Технология выполнения
1. Запустите приложение Excel и сохраните книгу под соответствующим именем.
2. Создайте форму аналогично приведенному рис. 100.
3. Пропишите работу кнопки «Вычислить»:
Private Sub CommandButton1_Click
Dim timeall As Integer
Рис. 100. Разработанная форма примера 52 в рабочем состоянии
Dim amort As Double
With ComboBox1
If.ListIndex = 0 Then
timeall = Textbox3.Value * 365
ElseIf.ListIndex = 1 Then
timeall = Textbox3.Value * 12
Else
timeall = Textbox3.Value
End If
End With
amort = DDB(TextBox1.Value, TextBox2.Value, timeall,
TextBox4.Value)
TextBox5.Value = amort
CommandButton2.Enabled = True
End Sub
Обратите внимание на вычисление значений параметра timeall в зависимости от выбора пункта в раскрывающемся списке (день, месяц, год) и использования функции DDB.
4. Заполнение поля со списком происходит в процедуре инициализации формы:
Private Sub UserForm_initialize
With ComboBox1
AddItem «день»
AddItem «месяц»
AddItem «год»
ListIndex = 0
End With
End Sub
Эта процедура запускается при использовании известного вам оператора Show.