Шаг 44.
VBA в MSExcel.
Диаграммы. Пример использования объекта Chart

    На этом шаге мы рассмотрим пример построения диаграммы с использованием указанного объекта.

    Приведем соответствие между построением графика вручную и аргументами метода ChartWizard на примере построения диаграммы из рисунка 1.


Рис.1. Пример диаграммы

  1. Выделите диапазон, на основе которого будет строиться диаграмма (рисунок 2).


    Рис.2. Выделение диапазона, по которому будет строиться диаграмма

        Этот диапазон вводится в аргумент Source. В данном примере аргументу Source присваивается значение Range ("A1:B11").

  2. Нажмите кнопку Мастер диаграмм (Chart Wizard), чтобы отобразить на экране диалоговое окно первого шага Мастера диаграмм (рисунок 3).


    Рис.3. Диалоговое окно первого шага работы Мастера диаграмм

        Выберите тип и вид диаграммы на первом шаге работы мастера диаграмм. Выбранный тип диаграммы вводится в аргумент Gallery, а тип — в аргумент Format. В данном случае аргументу Gallery присваивается значение xlLine, а аргументу Format — 1.

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

    • На вкладке Диапазон данных (Data Range) (рисунок 4) второго шага работы Мастера диаграмм при помощи переключателей Ряды в (Data Series In) укажите, как расположены ряды данных (в столбцах или строках), на основе которых строится диаграмма.


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

          Выбранное расположение вводится в аргумент plotBy. В данном случае аргументу PlotBy присваивается значение xlColumns (в столбцах). В поле Диапазон (Data Range) вводится диапазон, на основе которого строится диаграмма. В данном случае =Лист1!$A$1:$B$11.

    • На вкладке Ряд (Series) (рисунок 5) второго шага работы Мастера диаграмм исключите Ряд1 из списка Ряд (Series), нажав кнопку Удалить (Delete), т.к. первый ряд из диапазона данных будет отведен под метки оси абсцисс.


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

          Переменной categoryLabels присваивается число столбцов (строк) диапазона данных, отводимых под значения, которые будут отображены на оси абсцисс. В данном случае аргументу CategoryLabels присваивается значение 1, т. к. только первый столбец (A1:A11) отводится под значения, отображаемые на оси абсцисс. Кроме того, тот же диапазон данных =Лист1!$А$1:$А$11 вводится в поле Подписи оси X (Category (X) Axis Labels).

    • В поле Значения (Values) приводится ссылка на диапазон, содержащий значения ряда данных. В данном случае =Лист1!$В$1:$В$11. В параметр SeriesLabels водится число строк (столбцов) данных, отводимых под название различных ветвей диаграмм. Обычно этот параметр используется совместно с легендой для того, чтобы различать ветви диаграмм, построенные в одной и той же системе координат не только по цвету или внешнему виду, но и по этим названиям. В данном случае аргументу SeriesLabels присваивается значение 0, т. к. строится только одна диаграмма.
    Нажмите кнопку Далее (Next) для перехода к следующему шагу построения диаграммы.
    • На вкладке Заголовки (Titles) (рисунок 6) третьего шага работы Мастера диаграмм заполняются поля Название диаграммы (Chart Title), Ось X (категорий) (Category (X) Axis) и Ось Y (значений) (Value (Y) Axis) для отображения названий диаграммы и осей.


      Рис.6. Вкладка Заголовки диалогового окна третьего шага работы Мастера диаграмм

          Эти названия вводятся в аргументы Title, CategoryTitle и ValueTitle соответственно. В данном случае этим аргументам присвоены значения График, Аргумент и Функция.

    • На вкладке Легенда (Legend) третьего шага работы мастера диаграмм с помощью флажка Добавить легенду (Add Legend) устанавливается, надо ли отображать легенду. Результат установки вводится в аргумент HasLegend. В данном случае сбросим флажок Добавить легенду (Add Legend), после чего аргументу HasLegend присваивается значение False, т.е. легенда не отображается.
    • Нажмите кнопку Далее (Next) для перехода к следующему шагу построения диаграммы.
  3. На четвертом шаге работы мастера диаграмм выбирается, строится ли диаграмма как внедренный объект в рабочий лист, или на отдельном листе диаграмм. Для создания диаграммы на отдельном листе выберите переключатель отдельном (As New Sheet), а для создания внедренной диаграммы — переключатель имеющемся (As Object In) (рисунок 7).


    Рис.7. Диалоговое окно четвертого шага работы Мастера диаграмм

        Выберем переключатель имеющемся (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("Лист3").Range ("B1:B11"), _
      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
    

    На следующем шаге мы рассмотрим линию тренда.




Предыдущий шаг Содержание Следующий шаг