Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Макросы.doc
Скачиваний:
28
Добавлен:
21.11.2018
Размер:
16.91 Mб
Скачать

Ответы к 18-му часу Тесты

  1. Какой оператор VBA используется для создания диаграммы?

Оператор Charts.Add.

  1. Какое свойство объекта Application возвращает текущую активную диаграмму?

Свойство ActiveChart.

  1. Какое свойство объекта Chart определяет тип создаваемой диаграммы?

Свойство ChartType.

  1. Какой метод объекта Chart управляет данными, отображаемыми в диаграмме?

Метод SourceData.

  1. Что из перечисленного не является свойством объекта Chart: ChartArea, ChartType, ChartLocation или ChartTitle?

ChartLocation.

  1. Истинно или ложно следующее утверждение: процесс построения диаграмм можно записать с помощью макроса?

Истинно. Это самый простой способ создания процедур, строящих диаграммы.

  1. Свойство _____________ объекта Workbook возвращает активную диаграмму.

ActiveChart.

Упражнение

Создайте экранную форму с пятью переключателями (рис. 18.5):

  • Круговая диаграмма

  • Объемная круговая диаграмма

  • Гистограмма

  • Гистограмма с накоплением

  • Объемная гистограмма с накоплением

Создайте процедуру с именем ВыборТипаДиаграмм, которая выводила бы экранную форму. В экранной форме, в зависимости от числа столбцов в выделенном диапазоне ячеек, должен быть предустановлен или переключатель Круговая диаграмма, или переключатель Гистограмма. После выбора пользователем типа диаграммы и щелчка на кнопке ОК формы диаграмма выбранного типа должна быть построена.

Таблица свойств формы и ее элементов

Элемент

Свойство Caption (Заголовок)

Свойство Name (Имя)

Форма

Выбор типа диаграммы

frmChartType

Надпись (в верхней части формы)

значение свойства Caption задается в процедуре

lblInfo

Переключатель

Круговая диаграмма

optPie

Переключатель

Объемная круговая диаграмма

opt3DPie

Переключатель

Гистограмма

optClusterColumn

Переключатель

Гистограмма с накоплением

optStackedColumn

Переключатель

Объемная гистограмма с накоплением

opt3DStackedColumn

Командная кнопка

ОК

cmdOK

Командная кнопка

Отмена

cmdCancel

В области общих объявлений модуля необходимо ввести строку кода:

Dim rCurrRange As Range

Код процедуры ВыборТипаДиаграмм:

Sub ВыборТипаДиаграмм()

 Set rCurrRange = Selection

 frmChartType.Show

End Sub

Процедура инициализации экранной формы:

Private Sub UserForm_Initialize()

 If rCurrRange.Columns.Count = 2 Then

  optPie.Enabled = True

  optPie.Value = True

  opt3DPie.Enabled = True

  opt3DPie.Value = False

  optClusterColumn.Enabled = False

  optClusterColumn.Value = False

  optStackedColumn.Enabled = False

  optStackedColumn.Value = False

  opt3DStackedColumn.Enabled = False

  opt3DStackedColumn.Value = False

  lblInfo.Caption = "Для этих данных рекомендуемый тип диаграмма - круговая"

 ElseIf rCurrRange.Columns.Count > 2 Then

  optClusterColumn.Enabled = True

  optClustorColumn.Value = True

  optStackedColumn.Enabled = True

  optStackedColumn.Value = False

  opt3DStackedColumn.Enabled = True

  opt3DStackedColumn.Value = False

  optPie.Enabled = False

  optPie.Value = False

  opt3DPie.Enabled = False

  opt3DPie.Value = False

  lblInfo.Caption = "Для этих данных рекомендуемый тип диаграммы - гистограмма"

 Else

  MsgBox "Выделенный диапазон не позволяет построить диаграмму"

  frmChartType.Hide

  End

 End If

End Sub

Код процедуры cmdOK_Click (построение диаграмм):

Private Sub cmdOK_Click()

 If optPie.Value = True Then

  Charts.Add

  ActiveChart.ChartType = xlPie

  ActiveChart.SetSourceDate Source:=rCurrRange, PlotBy:= xlColumns

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

  ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowPercent, _

   LegendKey:=False, HasLeaderLines:=True

 ElseIf opt3DPie.Value = True Then

  Charts.Add

  ActiveChart.ChartType = xl3DPie

  ActiveChart.SetSourceDate Source:=rCurrRange, PlotBy:=xlColumns

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

  ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowPercent, _

   LeqendKey:=False, HasLeaderLines:=True

 ElseIf optStackedColumn.Value = True Then

  Charts.Add

  ActiveChart.ChartType = xlColumnStacked

  ActiveChart.SetSourceDate Source:=rCurrRange

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

 ElseIf optClusterColumn.Value = True Then

  Charts.Add

  ActiveChart.ChartType = xlColumnClustered

  ActiveChart.SetSourceDate Source:=rCurrRange

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

 ElseIf opt3DStackedColumn.Value = True Then

  Charts.Add

  ActiveChart.ChartType = xl3DColumnStacked

  ActiveChart.SetSourceDate Source:=rCurrRange

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

 End If

 With ActiveChart

  .HasTitle = True

  .ChartTitle.Characters.Text = "Объем продаж"

  .ChartTitle.Select

 End With

 Selection.AutoScaleFont = True

 With Selection.Font

  .Name = "Arial"

  .FontStyle = "полужирный курсив"

  .Size = 14

  .Strikethrough = False

  .Superscript = False

  .Subscript = False

  .OutlineFont = False

  .Shadow = False

  .Underline = xlUnderlineStyleNone

  .ColorIndex = xlAutomatic

  .Background = xlAutomatic

 End With

 frmChartType.Hide

End Sub

Код процедуры cmdCancel_Click:

Private Sub cmdCancel_Click()

 frmChartType.Hide

End Sub