Офисное программирование
Шрифт:
за второй – 1440 руб.;
за третий – 660 руб.;
а за четвертый и пятый будет равна 0.
Все пять аргументов должны быть положительными числами.
Замечания. Метод двойного процента со снижающегося остатка вычисляет амортизацию, используя увеличенный коэффициент. Амортизация максимальна в первый период, в последующие периоды уменьшается.
Примеры. Предположим, что предприятие приобрело новую машину. Машина стоит 2400 $ и имеет срок службы 10 лет. Остаточная стоимость составляет 300 $. Следующие примеры показывают амортизацию за несколько периодов. Результаты округляются до двух знаков после запятой.
ddb(2400,300,3650,1)
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.
5. Нажатие кнопки «Вывести отчет» должно приводить к выводу отчета на рабочий лист Excel в следующем формате (рис. 101):
Рис. 101. Вывод
вычислений на лист excel в примере 52Пример 53. Функция ddb имеет пять аргументов, последний из которых является коэффициентом амортизации. Необходимо в форме предусмотреть новое текстовое поле, куда пользователь смог бы вводить коэффициент, а в коде нужно учесть присутствие этого коэффициента.
В программе необходимо построить обработчик ошибок. Необходимость его создания обусловлена следующим фактором: если весь период эксплуатации составляет, к примеру, 120 месяцев, то невозможно вычислить амортизацию за 121 и т. д. месяцы. Таким образом, при некорректном вводе периода расчета амортизации должно появляться окно вывода с сообщением об ошибке и должен быть осуществлен новый ввод неверного параметра.
Указание: выход из процедуры осуществляется командой Exit Sub.
Глава 8
Построение диаграмм средстами VBA
8.1. Построение гладких диаграмм
Диаграммы можно размещать на рабочем листе. Для этого используется коллекция 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. Указывать эти числа нужно на единицу меньше фактического значения;