Чтение онлайн

ЖАНРЫ

Офисное программирование
Шрифт:

за второй – 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.

Глава 8

Построение диаграмм средстами VBA

8.1. Построение гладких диаграмм

Диаграммы в Excel

Диаграммы можно размещать на рабочем листе. Для этого используется коллекция chartobjects. Ее элементы – объекты класса chartobject – являются контейнерами, содержащими объект Chart, задающий непосредственно диаграмму.

Методы объекта Chart

Рассмотрим основные методы, определяющие новое поведение объекта Chart:

SubChartWizard ([Source], [Gallery], [Format], [PlotBy], [CategoryLabels], [SeriesLabels], [HasLegend], [Title], [CategoryTitle], [ValueTitle], [Extra-Title])

Этот метод позволяет построить или модифицировать существующую диаграмму. В отличие от мастера диаграмм (ChartWizard), который вызывается при построении диаграммы вручную, метод не является интерактивным, более того, он не позволяет задать все возможные свойства. С его помощью можно выполнить основную работу, а детали строятся с использованием других свойств и методов объекта Chart. Все параметры метода являются необязательными:

1) Source – объект Range, содержащий исходные данные для построения новой диаграммы. Если параметр опущен, то метод позволяет отредактировать существующую диаграмму – либо выделенную диаграмму рабочего листа, либо диаграмму активного листа диаграмм;

2) Gallery – задает тип диаграммы и может быть одной из следующих констант: xlArea, xlBar, xlColumn, xlLine, xlPie, xlRadar, xlXY-Scatter, xlCombination, xl3DArea, xl3DBar, xl3DColumn, xl3DLine, xl3DPie, xl3DSurface, xlDoughnut, или xlDefaultAutoFormat;

3) Format – задает формат для данного типа диаграммы. Каждому типу диаграммы соответствует некоторое число возможных форматов. Параметр задает номер формата, по умолчанию выбирается первый формат данного типа;

4) PlotBy – соответствует терминальному свойству PlotBy;

5) CategoryLabels и SeriesLabels – целые, указывающие число строк или столбцов с метками категорий и рядов данных в области, заданной параметром Source. Указывать эти числа нужно на единицу меньше фактического значения;

Поделиться с друзьями: