Самоучитель VBA

Методы объекта Chart



В данном разделе перечислены основные методы объекта 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)

Аргументы:

  • Tуре — определяет тип оси. Допустимые значения:

    xlCategory, xlSeries И xlValue

  • Group — допустимые значения: xi Primary и

    xlSecondary

    Пример:

    With Charts (1) .Axes (xlCategory) .HasTitle = True . AxisTitle. Caption = "Доход" End With

  • SeriesCol lection

    Возвращает семейство объектов series или объект этого семейства.

    Синтаксис (для одного объекта из семейства):

    SeriesCollection ( Index)

    Синтаксис (для семейства объектов):

    SeriesCollection

    Index — имя или номер элемента

    Пример:

    Charts (1) . SeriesCollection (1) .HasDataLabels = True

    SetSourceData

    Устанавливает источник данных диаграммы.

    Синтаксис:

    SetSourceData (Source, PlotBy)

  • source — диапазон, на основе которого строится диаграмма

  • PlotBy — допустимые значения: xlColumns (данные расположены по столбцам) и XIROWS (данные расположены по строкам)

    Пример:

    ActiveChart . SetSourceData Source :=Sheets (1) .Range ("A1 : F1") , PlotBy:=xlRows

  • <


    Export



    Экспортирует диаграмму в графический формат.

    Синтаксис:

    Export (FileName, FilterName, Interactive)

  • FileName — имя файла, в который будет записана диаграмма в графическом формате

  • FilterName — имя графического фильтра в том виде, как он записан в графическом формате

    Iinteractive — допустимые значения: True (для того чтобы показать диалоговое окно в процессе фильтрации) и False (в противном случае) Пример экспорта диаграммы в GIF-файл:

    ActiveChart . Export FileName : ="График . gif " , FilterName := "GIF"



  • Location



    Передвигает диаграмму на новое место.

    Синтаксис:

    Location (Where, Name)

  • where — указывает, будет ли диаграмма располагаться на новом листе диаграмм (xlLocationAsNewSheet), внедряться как объект на рабочий лист (xiLocationAsobject) или ее местоположение будет определяться автоматически

    (xlLocationAutomatic)

    Name — имя листа диаграммы, если аргумент where принимает значение xlLocationAsNewSheet, либо имя рабочего листа, если аргумент where принимает значение xlLocationAsobject

  • Приведем несколько наиболее часто используемых методов семейства ChartObjects.



    Add



    Создает новую диаграмму.

    Синтаксис:

    Add (Left, Top, Width, Height)

  • Left, Top — координаты левого верхнего угла диаграммы

    width, Height — ширина и высота диаграммы



  • Delete



    Удаляет элемент семейства



    CopyPicture



    Копирует диаграмму в буфер обмена как рисунок.

    Синтаксис:

    CopyPicture (Appearance, Format, Size)

  • Appearance — устанавливает, каким образом диаграмма копируется. Допустимые значения: xlScreen (диаграмма копируется в том виде, в котором она отображается на экране) и xlPrinter (диаграмма копируется так, как она выглядит после вывода на печать)

    Format — формат рисунка. Допустимые значения: xlPicture И xlBitmap



  • 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


    • На вкладке Диапазон данных (Data Range) (рис. 5.5) второго шага работы мастера диаграмм при помощи переключателей Ряды в (Data Series In) укажите, как расположены ряды данных (в столбцах или строках), на основе которых строится диаграмма. 'Выбранное расположение вводится в аргумент piotBy. В данном случае аргументу PiotBy присваивается значение xicoiumns (в столбцах). В поле Диапазон (Data Range) вводится диапазон, на основе которого строится диаграмма. В данном случае =лист1 ! $A$1 : $B$11 .

    • На, вкладке Ряд (Series) (рис. 5.6) второго шага работы мастера диаграмм исключите РЯД! из списка Ряд (Series), нажав кнопку Удалить (Delete), т. к. первый ряд из диапазона данных будет отведен под метки оси абсцисс. Переменной categoryLabeis присваивается число столбцов (строк) диапазона данных, отводимых под значения, которые будут отображены на оси абсцисс. В данном случае аргументу CategoryLabeis присваивается значение 1, т. к. только первый столбец (A1:A11) отводится под значения, отображаемые на оси абсцисс. Кроме того, тот же диапазон данных =Лист1 ! $А$1 : $А$11 вводится в поле Подписи оси X (Category (X) Axis Labels). П В поле Значения (Values) приводится ссылка на диапазон, содержащий значения ряда данных. В данном случае =Лист1!$В$1:$В$11. В Переменную SeriesLabels водится число строк (столбцов) данных, отводимых под название различных ветвей диаграмм. Обычно эта переменная используется совместно с легендой для того, чтобы различать ветви диаграмм, построенные в одной и той же системе координат не только по цвету или внешнему виду, но и по этим названиям. В данном случае аргументу SeriesLabels присваивается значение 0, т. к. строится только одна диаграмма.

      Нажмите кнопку Далее > (Next >) для перехода к следующему шагу построения диаграммы.

    <




    Рис. 5.5. Вкладка Диапазон данных диалогового окна второго шага работы мастера диаграмм



    Рис. 5.6. Вкладка Ряд диалогового окна второго шага работы мастера диаграмм



    ШагЗ



    • На вкладке Заголовки (Titles) (рис. 5.7) третьего шага работы мастера диаграмм заполняются поля Название диаграммы (Chart Title), Ось X (категорий) (Category (X) Axis) и Ось Y(значений) (Value (Y) Axis) для отображения названий диаграммы и осей. Эти названия вводятся в аргументы Title, CategoryTitie и vaiueTitie соответственно. В данном случае этим аргументам присвоены значения график, Аргумент и Функция.

    • На вкладке Легенда (Legend) третьего шага работы мастера диаграмм с помощью флажка Добавить легенду (Add Legend) устанавливается, надо ли отображать легенду. Результат установки вводится в аргумент Has Legend. В данном случае сбросим флажок Добавить легенду (Add Legend), после чего аргументу HasLegend присваивается значение False, т. к. легенда не отображается.

    • Нажмите кнопку Далее >(Next >) для перехода к следующему шагу построения диаграммы.



    Рис. 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. Диалоговое окно четвертого шага работы мастера диаграмм




    Содержание раздела