Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум3 по ИТ.doc
Скачиваний:
6
Добавлен:
26.08.2019
Размер:
3.67 Mб
Скачать

Задание III.

Рассмотрим пример оформления расчета постоянных периодических выплат с построением диаграммы из диалогового окна.

  1. Переименуйте один из листов рабочей книги Excel, присвоив имя: “Выплаты”

  2. З адайте в диапазоне А1:А4, в каждой ячейке соответственно, заголовки данных, которые программа будет обрабатывать. Столбцы с D по G будут использованы под диапазон процентных ставок.

  3. С оздайте Userform как показано на рисунке. Измените его свойство Name, установив в значение: Const_vyp.

  1. Процедуры данной программы выполняют следующие действия в соответствии с кодом:

- кнопке Вычислить

Private Sub cmdCalc_Click()

Dim P, ib, ie, ist As Double

Dim k, i, n, m As Integer

Dim A(), B() As Double

Dim SO, Bl() As String

Dim Area As Object

P = CDbl(txtSsuda.Text)

k = CInt(txtKol.Text)

ib = CDbl(txtBeg.Text) / 100

ie = CDbl(txtEnd.Text) / 100

ist = CDbl(txtStep.Text) / 100

If ie < ib Or ie < ib + ist Then

MsgBox "Ошибка в ставках", vblnformation

Exit Sub

End If

Set Area = Sheets("Выплаты").Cells(1, 4).CurrentRegion

n = Area.Columns.Count

Sheets("Выплаты").Range(Cells(1, 4), Cells(2, n + 3)).Clear

m = (ie - ib) / ist + 1

ReDim A(1 To m)

ReDim B(l To m)

ReDim Bl(1 To m)

With Sheets("Выплаты")

For i = 1 To m

B(i) = ib + ist * (i - 1)

A(i) = Application.Pmt(B(i), k, -P)

A(i) = Format(A(i), "##")

Bl(i) = CStr(Format(B(i), "00.0%"))

.Cells(1, 4 + i - 1).Value = Bl(i)

.Cells(2, 4 + i - 1).Value = A(i)

Next i

End With

With Sheets("Выплаты")

.Range("D3").Value = P

.Range("D4").Value = k

End With

ReDim S(1 To m)

For i = 1 To m

S(i) = CStr(Bl(i)) & " " & CStr(A(i)) & " p."

Next i

For i = 1 To m

ComboBox1.AddItem S(i)

Next i

ComboBox1.Value = 1

Sheets("Выплаты").ChartObjects.Delete

End Sub

- кнопке Отмена

Private Sub cmdCancel_Click()

Unload Me

End Sub

- кнопке Очистить

Private Sub cmdClear_Click()

Dim Area As Object

Dim n, i As Integer

For i = 1 To Sheets("Выплаты").ChartObjects.Count

Sheets("Выплаты").ChartObjects(i).Delete

Next i

Set Area = Sheets("Выплаты").Cells(1, 4).CurrentRegion

n = Area.Columns.Count

With Sheets("Выплаты")

.Range(Cells(1, 4), Cells(2, n + 3)).Clear

.Range("D3").Clear

.Range("D4").Clear

End With

End Sub

- кнопке График

Private Sub cmdGrafik_Click()

Dim Area As Object

Dim n, i As Integer

Set Area = Sheets("Выплаты").Cells(1, 4).CurrentRegion

n = Area.Columns.Count

Sheets("Выплаты").ChartObjects.Add(195, 30, 200, 190).Select

Application.CutCopyMode = False

ActiveChart.ChartWizard Source:= _

Range(Cells(1, 4), Cells(2, n + 3)), _

Gallery:=xlColumn, Format:=1, _

PlotBy:=xlRows, CategoryLabels:=l, _

SeriesLabels:=0, HasLegend:=2, _

Title:="Диаграмма", _

CategoryTitle:="Ставка", _

ValueTitle:="Выплаты", _

ExtraTitle:=""

End Sub

Пояснения к построению диаграммы из проекта.

Метод Add, примененный к ChartObjects, создает новый графический объект, определяя координату его левого верхнего угла, высоту и ширину. Единицей измерения является 1/72 дюйма, а точка с координатами (0, 0) распо­лагается в левом верхнем углу ячейки А1. В общем случае синтаксис метода Add имеет вид:

Add(left, top, width, height),

где left, top — координаты левого верхнего угла, width и height — ширина и высота создаваемого графического объекта. Например, использованная в процедуре конструкция

ActiveSheet.ChartObjects.Add{195, 30, 200, 190).Select

создает на активном листе пустую диаграмму с левым верхним углом в точке с координатами (195, 30), шириной 200 и высотой 190.

Метод Сhartwizard вводит данные и форматирует ранее созданную диа­грамму.

Опишем переменные метода Сhartwizard: