×
Traktatov.net » Excel. Трюки и эффекты » Читать онлайн
Страница 125 из 146 Настройки

.ChartGroups(1).GapWidth = 20

.PlotArea.Interior.ColorIndex = xlNone

.ChartArea.Font.Size = 9

' Диаграмма с легендой

.HasLegend = True

' Заголовок

.HasTitle = True

.ChartTitle.Characters.Text = sheet.Range(«A1»)

' Задание диапазона значений на осях

.Axes(xlValue).MinimumScale = 0

.Axes(xlValue).MaximumScale = 120000

' Стиль линий сетки (прерывистый)

.Axes(xlValue).MajorGridlines.Border. _

LineStyle = xlDot

End With

On Error GoTo 0

' Сдвиг верхней точки следующей диаграммы на высоту _

текущей диаграммы

intTop = intTop + intHeight

AfterError:

End If

Next sheet

If strErrorSheets <> "" Then

' Отобразим список листов, для которых не построили диаграммы

MsgBox «Не удалось построить диаграммы для листов:» &

Chr(13) _

& strErrorSheets, vbExclamation

End If

Exit Sub

DiagrammError:

' Добавление в список имени листа, для которого не смогли _

построить диаграмму (ошибка в данных для диаграммы)

strErrorSheets = strErrorSheets & sheet.Name & Chr(13)

' Удаление пустой диаграммы на текущем листе

ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Delete

' Продолжаем работу с другими листами

Resume AfterError

End Sub

Перед запуском макроса нужно создать пустой рабочий лист для диаграмм. Макрос следует запускать, находясь на этом рабочем листе. В результате выполнения макроса будет создано сразу пять диаграмм, расположенных одна под другой, – по диаграмме для каждой таблицы. Диаграммам будут присвоены названия в соответствии со значением, хранящимся в ячейке А1 (например, на рис. 4.8 в данной ячейке хранится значение Таблица 4, поэтому и соответствующая ей диаграмма будет называться Таблица 4). Особо следует отметить, что приведенный макрос корректно обрабатывает данные в разных таблицах, несмотря на то что количество строк в них различается.

Создание подписей к данным диаграммы

Опытным пользователям Excel известно, что порядок добавления подписей на диаграммы оставляет желать лучшего. В данном разделе мы рассмотрим прием, который позволяет быстро создать подписи к точкам диаграммы.

Диаграмма, а также исходные данные, на основании которых она построена, приведены на рис. 4.9.

Рис. 4.9. Диаграмма без подписей


Для управления отображением подписями к точкам диаграммы нужно в стандартном модуле редактора VBА написать следующий код (листинг 4.12).

Листинг 4.12. Подписи к данным диаграммы

Sub ShowLabels()

Dim rgLabels As Range ' Диапазон с подписями

Dim chrChart As Chart ' Диаграмма

Dim intPoint As Integer ' Точка, для которой добавляется

подпись

' Определение диаграммы

Set chrChart = ActiveSheet.ChartObjects(1).Chart

' Запрос на ввод диапазона с исходными данными

On Error Resume Next

Set rgLabels = Application.InputBox _

(prompt:="Укажите диапазон с подписями", Type:=8)

If rgLabels Is Nothing Then Exit Sub

On Error GoTo 0

' Добавление подписей

chrChart.SeriesCollection(1).ApplyDataLabels _

Type:=xlDataLabelsShowValue, _

AutoText:=True, _

LegendKey:=False

' Просмотр диапазона и назначение подписей

For intPoint = 1 To chrChart.SeriesCollection(1).Points.Count

chrChart.SeriesCollection(1). _

Points(intPoint).DataLabel.Text = rgLabels(intPoint)