Основы программирования

Офисное программирование - Финансовые функции
Индекс материала
Офисное программирование
Осноные седения о программироании на VBA
Определения
Обзор типов данных VBA
Переменные
Константы
Математические функции
Операторы и выражения
Логические операторы
Повторение действий: циклы
Объект UserForm
Использование форм
Задачи на закрепление материала
Массивы, процедуры, функции
Работа с различными типами данных
Функции работы со строками
Процедуры и функции VBA
Макросы
Создание VBA-программ
Элементы управления ComboBox, OptionButton и Frame
Элементы управления MultiPage, ScrollBar, SpinButton
Набор страниц MultiPage
Полоса прокрутки ScrollBar
Объект DataObject
Реализация технологии DragAndDrop
Программирование на VBA в Word
События объекта Document
Объекты Range и Selection
Работа с буфером
Форматирование документа
Создание кнопки или панели в Word
Автоматизация стандартных документов
Задачи на закрепление материала
Создание VBA-программ
Создание модуля Печать
Создание модулей работы кнопок
Особенности использования VBA в Excel
Метод AutoFilter
Метод Sort
Использование метода GoalSeek
Использование методов AutoFill
Математическая модель решения задачи
Разработка интерфейса пользователя
Финансовые функции
Построение диаграмм средстами VBA
Базы данных в Excel
Конструирование пользовательского интерфейса
Конструирование интерфейса. Презентация
Создание собственного головного меню
Добавление подменю
Добавление выпадающих меню
Все страницы

 

Расчет амортизации

 

VBA предоставляет ряд встроенных функций, которые можно использовать для выполнения финансовых расчетов. Они разбиты на три основные группы: функции учета амортизации, функции учета отчислений и функции учета денежных потоков. Мы рассмотрим одну их этих групп – функции учета амортизации. Эти функции используются в бухгалтерском деле для предоставления в денежном выражении обесценивания основных средств за определенный период времени. Например, фирме, являющейся владельцем грузового автомобиля, необходимо рассчитать сумму ежегодной амортизации грузовика для вычисления текущей стоимости грузовика в любой момент времени. Поскольку амортизация влияет на размер налогов, правительство часто устанавливает обязательные формулы, которые следует применять для расчета амортизации.

Под амортизацией понимают уменьшение стоимости имущества (основных средств) в процессе эксплуатации. Обычно оценивают величину этого уменьшения, приходящуюся на единицу времени. В финансовый пакет 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.

Все пять аргументов должны быть положительными числами.

Замечания. Метод двойного процента со снижающегося остатка вычисляет амортизацию, используя увеличенный коэффициент. Амортизация максимальна в первый период, в последующие периоды уменьшается.

Примеры. Предположим, что предприятие приобрело новую машину. Машина стоит 2400 $ и имеет срок службы 10 лет. Остаточная стоимость составляет 300 $. Следующие примеры показывают амортизацию за несколько периодов. Результаты округляются до двух знаков после запятой.

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.

 

Создание VBA-программы

 

Пример 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.

5. Нажатие кнопки «Вывести отчет » должно приводить к выводу отчета на рабочий лист Excel в следующем формате (рис. 101):

 

 

Рис. 101. Вывод вычислений на лист excel в примере 52

Задача на закрепление материала

 

Пример 53. Функция ddb() имеет пять аргументов, последний из которых является коэффициентом амортизации. Необходимо в форме предусмотреть новое текстовое поле, куда пользователь смог бы вводить коэффициент, а в коде нужно учесть присутствие этого коэффициента.

В программе необходимо построить обработчик ошибок. Необходимость его создания обусловлена следующим фактором: если весь период эксплуатации составляет, к примеру, 120 месяцев, то невозможно вычислить амортизацию за 121 и т. д. месяцы. Таким образом, при некорректном вводе периода расчета амортизации должно появляться окно вывода с сообщением об ошибке и должен быть осуществлен новый ввод неверного параметра.

Указание : выход из процедуры осуществляется командой Exit Sub.