Excel позволяет
создавать высококачественные диаграммы. Существенную помощь при их построении
оказывают встроенные форматы диаграмм, предоставляющие большой спектр графического
представления наборов данных. Как вся диаграмма, так и ее отдельные элементы
легко удаляются, изменяются и добавляются. Добавляя в диаграмму пояснительный
текст, стрелки, заголовки, легенду, изменяя заливку, узоры, типы линий и обрамление,
можно добиться того, чтобы диаграмма представляла данные в наиболее наглядном
виде.
В Excel различаются
два вида диаграмм: внедренная на рабочий лист и созданная на специальном листе
для диаграмм. Итак, семейство sheets (листы) включает в себя семейства: worksheets
(рабочие листы) и charts (листы диаграмм). Объектами семейства charts являются
листы диаграмм, но это семейство не включает в себя диаграммы, непосредственно
встроенные в рабочие листы. Такие диаграммы принадлежат семейству chartobjects.
Таким образом, объект ChartObject встроен В Объект Worksheet, a Chart — В workbook.
Иерархия этих объектов показана на рис. 5.1. Свойства и методы этих объектов
в основном аналогичны.
Рис.
5.1. Иерархия объектов Chart и ChartObject
Перечислим
основные свойства объекта chart и семейства charts.
ChartArea |
Возвращает объект ChartArea — область на листе, отведенная под диаграмму. В следующем примере устанавливается цвет элементов объекта ChartArea. With Charts { "Диаграмма") .ChartArea . Interior . Colorlndex = 3 . Border . Colorlndex = 5 End With |
||
PlotArea |
Возвращает объект PlotArea — часть области ChartArea, отведенная непосредственно под диаграмму. В следующем примере устанавливается Цвет объекта PlotArea: Charts (1) . PlotArea
. Interior . Colorlndex = 8 |
||
ChartTitle |
Возвращает объект
ChartTitle, являющийся заголовком диаграммы. В следующем примере задается
заголовок диаграммы отчет : With Charts ( "Отчет") .HasTitle = True . ChartTitle . Text = "Продажи за май" End With |
||
ChartType |
Возвращает тип диаграммы: xlArea, xlBar,xlColumn, xlLine, xlPie, xlRadar, xlXYScatter, xlCombination, xl3DArea, xlSDBar, xl3DColumn, xl3DLine, xl3DPie, xlSDSurface, xlDoughnut |
||
Legend |
Возвращает объект
Legend. Используется для изменения легенды. Например: ChartObjects (1).Chart. Legend. Font .Bold = True |
||
Rotation |
Возвращает угол
поворота 3-мерной диаграммы вокруг z-оси. Допустимыми являются значения
от 0° до 360°. По умолчанию принимается угол, равный 20° |
||
Elevation |
Возвращает угол
возвышения для обзора трехмерной диаграммы. Допустимыми являются значения
от —90° до 90°. По умолчанию принимается угол, равный 15° |
||
PlotBy |
Допустимые значения:
xlCoiumns (столбцы используются как ряды данных при построении диаграммы),
xlRows (строки используются как ряды данных при построении диаграммы) |
||
PlotVisibleOnly |
Допустимые значения:
True (диаграмма строится только по видимым ячейкам), False (в противном
случае) |
||
Floor, Corners,
Walls |
Возвращают соответственно
объекты Floor, Corners, walls, используемые при построении трехмерных
диаграмм. При отображении таких диаграмм для создания иллюзии трехмерности
диаграмма отображается на фоне открытого куба, основание которого
задается объектом Floor, углы — Corners, а две боковые стенки — wails.
В следующем примере устанавливаются цвета объектов Floor и walls и
выбирается объект corners: With Charts (1)
.. Floor . Interior . Colorlndex = 5 .Walls. Border. Colorlndex =
3 /Corners . Select End With |
||
AutoScaling |
Допустимые значения:
True (трехмерная диаграмма автоматически масштабируется так, чтобы
по размеру совпадать с двумерной), False (диаграмма не масштабируется) |
||
DepthPercent,
Height Per cent |
Применяется
только к трехмерным диаграммам. Возвращает глубину и высоту диаграммы
в процентах к ее ширине |
||
DisplayBlasnksAs |
Допустимые значения:
|
||
Protect Contents,
ProtectData, ProtectDrawingObjects, Protect Formatting, ProtectGoalSeek,
Protect ionMode, ProtectionSelection, |
Возвращает True,
если указанный элемент диаграммы имеет защиту, и False — в противном
случае |
||
HasAxis, HasDAtaTable,
HasLegend, HasTitle |
Возвращает True,
если указанный элемент имеется на диаграмме, и False — в противном
случае |
||
В данном
разделе перечислены основные методы объекта chart.
Метод chartwizard
применяется для построения и изменения существующей диаграммы. С помощью метода
chartwizard, в отличие от команды Мастер диаграмм (ChartWizard), используемой
для построения диаграммы вручную, нельзя задать все возможные свойства диаграммы.
Он позволяет выполнить основную работу, а детали строятся с привлечением других
свойств и методов объекта chart.
Синтаксис:
Chartwizard(Source,
Gallery, Format, PlotBy,
CategoryLabels, SeriesLabels, HasLegend, Title,
CategoryTitle,
ValueTitle, ExtraTitle)
Аргументы:
Source |
Диапазон,
по которому строится диаграмма |
||
Gallery |
Тип диаграммы. Допустимые значения: xiArea, xlBar, xlColumn,
xlLine, xlPie, xlRadar, xlXYScatter, xlCombination, xl3DArea, xl3DBar,
xl3DColumn, xl3DLine, xl3DPie, xl3DSurface, xlDoughnut
или xl Default Auto Format |
||
Format |
Формат для данного
типа диаграммы. Каждый тип имеет до десяти форматов |
||
PlotBy |
Допустимые значения:
XIROWS (строки) и xlColumns
(столбцы) |
||
CategoryLabels |
Указывает число
строк (столбцов) с метками категорий (т. е. данных, отводимых под
ось абсцисс) |
||
SeriesLabels |
Указывает число
строк (столбцов) с метками рядов (т. е. данных, отводимых под заголовки) |
||
HasLegend |
Допустимые значения:
True (отображать легенду) и False (не отображать легенду) |
||
Title |
Название диаграммы |
||
CategoryTitle |
Название оси
абцисс |
||
ValueTitle |
Название оси
ординат |
||
ExtraTitle |
Название z-оси
для трехмерных диаграмм |
||
Приведем
несколько наиболее часто используемых методов объекта chart, позволяющих изменять
детали диаграммы.
Axes |
Возвращает семейство
Axes, предназначенное для установки различных свойств осей. Для возвращения
уникальной оси необходимо использовать следующий синтаксис метода:
Axes (Type,
Group) Аргументы:
Пример: With Charts (1)
.Axes (xlCategory) .HasTitle = True . AxisTitle. Caption = "Доход"
End With |
||
SeriesCol lection |
Возвращает семейство объектов series или объект этого семейства. Синтаксис (для
одного объекта из семейства): SeriesCollection
( Index) Синтаксис (для
семейства объектов): SeriesCollection
Пример: Charts (1) . SeriesCollection
(1) .HasDataLabels = True |
||
SetSourceData |
Устанавливает источник данных диаграммы. Синтаксис: SetSourceData (Source,
PlotBy)
Пример: ActiveChart . SetSourceData Source :=Sheets (1) .Range ("A1 : F1") , PlotBy:=xlRows |
||
Export |
Экспортирует диаграмму в графический формат. Синтаксис: Export (FileName,
FilterName, Interactive)
ActiveChart . Export
FileName : ="График . gif " , FilterName := "GIF" |
||
Location |
Передвигает диаграмму на новое место. Синтаксис: Location (Where,
Name)
|
||
Приведем
несколько наиболее часто используемых методов семейства ChartObjects.
Add |
Создает новую диаграмму. Синтаксис: Add (Left, Top,
Width, Height)
|
||
Delete |
Удаляет элемент
семейства |
||
CopyPicture |
Копирует диаграмму в буфер обмена как рисунок. Синтаксис: CopyPicture (Appearance,
Format, Size)
|
||
BringToFront |
Отображает диаграмму
на переднем плане |
||
SendToBack |
Отображает диаграмму
на заднем плане |
||
Select |
Выбирает диаграмму |
||
Приведем
соответствие между построением графика вручную и аргументами метода ChartWizard
на примере построения диаграммы из рис. 5.2.
Рис. 5.2. Пример диаграммы
Шаг 0 |
Выделите диапазон,
на основе которого будет строиться диаграмма (рис. 5.3). Этот диапазон
вводится в аргумент source. В данном примере аргументу source присваивается
значение Range ("A1:B11") .
|
||
Рис.
5.4. Диалоговое окно первого шага работы мастера диаграмм
Шаг 1 |
Нажмите кнопку
Мастер диаграмм (Chart Wizard) чтобы отобразить на экране диалоговое
окно первого шага мастера диаграмм (рис. 5.4). Выберите тип и вид
диаграммы на первом шаге работы мастера диаграмм. Выбранный тип диаграммы
вводится в аргумент Gallery, а тип — в аргумент Format. В данном случае
аргументу Gallery присваивается значение xlLine, а аргументу
Format — 1. Нажмем кнопку Далее > (Next >) для перехода к следующему шагу построения диаграммы.
|
||
Шаг 2 |
Нажмите
кнопку Далее > (Next >) для перехода к следующему шагу построения
диаграммы.
|
Рис.
5.5. Вкладка Диапазон данных диалогового окна второго шага
работы мастера диаграмм
Рис.
5.6. Вкладка Ряд диалогового окна второго шага работы мастера диаграмм
ШагЗ |
|
||
Рис.
5.7.Вкладка Заголовки диалогового окна третьего шага работы
мастера диаграмм
ШагЗ |
На четвертом
шаге работы мастера диаграмм выбирается, строится ли диаграмма как
внедренный объект в рабочий лист, или на отдельном листе диаграмм.
Для создания диаграммы на отдельном листе выберите переключатель отдельном
(As New Sheet), а для создания внедренной диаграммы — переключатель
имеющемся (As Object In) (рис. 5.8). Выберем переключатель имеющемся
(As Object In). Результат выбора не отображается в методе
ChartWizard. Нажатие кнопки Готово (Finish) завершает процесс создания диаграммы. Подытожим произведенные присвоения аргументам метода ChartWizard. '
Добавляется диаграмма в семейство диаграмм на активном ' рабочем листе ' ActiveSheet.ChartObjects.Add(195, 30, 200, 190). Select ' ' Производится
построение диаграммы методом ChartWizard ActiveChart. ChartWizard Source : =Range ("A1:B11") , Gallery:= xlLine, Format :=1, PlotBy:= xlColumns, CategoryLabels : =1, SeriesLabels :=0, HasLegend: =False, Title := "График", CategoryTitle : = "Аргумент", ValueTitle : ="Функция" Ту же самую
диаграмму, не используя метод ChartWizard, можно построить с помощью
следующей последовательности инструкций: Charts . Add ActiveChart. ChartType = xlLine ActiveChart . SetSourceData Source :=Sheets('ЛИCT3"). Range ( "Bl : Bll" ), PlotBy : =xlColumns ActiveChart. SeriesCollection (1) .XValues = "=Лист3 !R1C1:R11C1" ActiveChart .Location Where:=xlLocationAsObject, Nаmе:="ЛистЗ" With ActiveChart .HasTitle = True . ChartTitle. Characters. Text = "График" .Axes (xlCategory, xlPrimary) .HasTitle = True .Axes (xlCategory, xlPrimary) .AxisTitle. Characters. Text = "Аргумент" .Axes (xlValue, xlPrimary) .HasTitle = True .Axes (xlValue, xlPrimary) .AxisTitle. Characters. Text = "Функция" .HasLegend = False End With |
||
Рис.
5.8. Диалоговое окно четвертого шага работы мастера диаграмм
С помощью
диаграммы легко можно анализировать тренды и делать прогнозы. Вручную линия
тренда на диаграмме добавляется с помощью команды Диаграмма, Добавить линию
тренда (Chart, Add Trendline).
Все линии
тренда, соответствующие данному ряду данных, образуют семейство Trendlines,
элементами которого являются объекты Trendline (линия тренда).
Основными
методами семейства Trendiines являются метод Add, добавляющий новый элемент
в семейство, и метод item, возвращающий конкретный элемент семейства.
Приведем
описание метода Add семейства Trendiines.
Add |
Добавляет новый элемент в семейство Trendlines. Синтаксис: Add (Type, Order,
Period, Forward, Backward, Intercept, DisplayEquation, DisplayRSquared,
Name)
Используется, если аргумент туре принимает значение xlMovingAvg.
|
||
Из свойств
семейства Trendlines отметим только свойство count, возвращающее число элементов
этого семейства.
Приведем
соответствие между построением линии тренда вручную и аргументами метода Add
семейства Trendiines.
Шаг 1 |
|
||
Шаг 2 |
На вкладке Тип (Туре) появившегося диалогового окна Линия тренда (Trendline) (рис. 5.10):
|
||
ШагЗ |
На вкладке Параметры (Options) диалогового окна Линия тренда (Trendline) (рис. 5.11) устанавливаются параметры линии тренда:
|
||
Рис.
5.9. Построение линии тренда для объема продаж по неделям
Рис.
5.10. Вкладка Тип диалогового окна Линия тренда
Рис.
5.11. Вкладка Параметры диалогового окна Линия тренда
Шаг 4 |
Нажмите кнопку ОК. Линия тренда построена на диаграмме (рис. 5.12). Программно линия тренда строится с помощью следующих инструкций: ActiveSheet . ChartObjects ( "Диагр.1").Activate ActiveChart . ChartArea . Select ActiveChart . SeriesCollection
( 1 ) . Trendlines . Add (Type : =xlLinear , Forward :=0, Backward
:=0, DisplayEquation:=True, DisplayRSquared:=True) .Select |
||
Рис. 5.12. Линия тренда объема продаж