Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Жикривецкий РГР.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
610.82 Кб
Скачать

Результаты работы формы

Общий вид формы 2 “Параметры диаграммы”

Описание элементов управления

Вторая форма (UserForm2) состоит из рамки «Данные, отображаемые на диаграмме» (Frame1); из рамки «Тип Диаграммы» (Frame2); графы «Название диаграммы» (Label1) и соответствующее ей текстовое окно (Textbox1), куда мы вводим название диаграммы; кнопка «Построить диаграмму» (CommandButton1), после нажатия которой на рабочем листе строится диаграмма, заданного типа и с выбранными параметрами.

На Frame1 находятся 6 флажковых полей (CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5, CheckBox6) соответствующие данным из нашей таблицы. Ставя и снимая флажки, мы указываем те данные, которые будут представлены на нашей диаграмме.

На Frame2 находятся 3 переключателя (OptionButton1, OptionButton2, OptionButton3), каждый из которых имеет своё имя, соответствующее заданному типу диаграммы. Включая переключатель, мы определяем тип диаграммы, которая будет построена на рабочем листе.

Описание функционирование формы

Private Sub CommandButton1_Click()

‘Задаются константы, характеризующие ячейки с исходными данными для диаграммы’

Const a = "I26:J26", b = "I27:J27", c = "I21:J21", d = "I22:J22", e = "I23:J23", f = "I24:J24"

‘Задается переменная rez строчного типа, которая служит для хранения ячеек исходных данных диаграмм’

Dim rez As String

‘Очистка переменной’

rez = Empty

‘Далее идет проверка каждого CheckBox и в случае если он имеет значение True то константа добавляется в переменную для хранения ссылки на выбранные исходные данные’

If CheckBox1.Value = True Then rez = rez + a

If CheckBox2.Value = True Then

If rez <> Empty Then

rez = rez + "," + b

Else

rez = rez + b

End If

End If

If CheckBox3.Value = True Then

If rez <> Empty Then

rez = rez + "," + c

Else

rez = rez + c

End If

End If

If CheckBox4.Value = True Then

If rez <> Empty Then

rez = rez + "," + d

Else

rez = rez + d

End If

End If

If CheckBox5.Value = True Then

If rez <> Empty Then

rez = rez + "," + e

Else

rez = rez + e

End If

End If

If CheckBox6.Value = True Then

If rez <> Empty Then

rez = rez + "," + f

Else

rez = rez + f

End If

End If

‘В случае если не выбрана ни одна галочка, то происходит вывод ошибки и выход из Sub’

If rez = Empty Then

MsgBox "Укажите данные для диаграммы!"

Exit Sub

End If

‘Далее в зависимости от выбранного вида диаграммы создается диаграмма и помещается на лист Exel с учетом выбранных данных ’

If OptionButton1.Value = True Then

Charts.Add

ActiveChart.SetSourceData Source:=Sheets("Лист1").Range(rez)

ActiveChart.ChartType = xlPieExploded

ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"

With ActiveChart

.HasTitle = True

.ChartTitle.Characters.Text = TextBox1.Text

End With

UserForm2.Hide

End If

If OptionButton2.Value = True Then

Charts.Add

ActiveChart.SetSourceData Source:=Sheets("Лист1").Range(rez)

ActiveChart.ChartType = xl3DPieExploded

ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"

With ActiveChart

.HasTitle = True

.ChartTitle.Characters.Text = TextBox1.Text

End With

UserForm2.Hide

End If

If OptionButton3.Value = True Then

Charts.Add

ActiveChart.ChartType = xlPyramidCol

ActiveChart.SetSourceData Source:=Sheets("Лист1").Range(rez)

ActiveChart.HasLegend = False

ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист1"

ActiveChart.Axes(xlValue).Select

Selection.TickLabels.NumberFormat = "0"

ActiveChart.SeriesCollection(1).Select

Selection.BarShape = xlPyramidToMax

With ActiveChart

.HasTitle = True

.ChartTitle.Characters.Text = TextBox1.Text

.Axes(xlSeries).Select

Selection.Delete

End With

UserForm2.Hide

End If

‘После создания диаграмм UserForm закрываются и завершается Sub

End Sub

Private Sub CheckBox1_Click()

‘При запуске формы по умолчанию все CheckBox имеют значение True и при нажатии на него меняется значение на False (убирается галочка) и “потухает” надпись’

If Label1.Enabled = True Then

Label1.Enabled = False

Exit Sub

End If

If Label1.Enabled = False Then

Label1.Enabled = True

Exit Sub

End If

End Sub

Private Sub UserForm_Activate()

‘При запуске формы по умолчанию устанавливается название диаграммы (Диаграмма основных затрат по смете)’

TextBox1.Text = "Диаграмма основных затрат по смете"

End Sub