Мир объектов Excel 2000



Как получить объект Chart


Объект Chart задает диаграмму, расположенную на листе рабочей книги или на отдельном листе диаграммы. В зависимости от типа листа получение этого объекта ведется по-разному. Я уже об этом говорил, но хочу теперь систематизировать приводимые ранее сведения. Рассмотрим все возможные случаи:

  • Диаграмма встроена в рабочий лист. На рабочем листе может находиться несколько встроенных диаграмм. Коллекция ChartObjects задает совокупность объектов - контейнеров, содержащих эти диаграммы. Зная индекс или имя диаграммы, можно получить доступ к нужному элементу этой коллекции, а свойство Chart позволяет получить объект, задающий диаграмму. Так что вызов ThisWorkbook.Worksheet(3).ChartObjects(1).Chart

    вернет объект Chart, задающий первую диаграмму, расположенную на третьем рабочем листе текущей рабочей книги. Я хотел выделить этот объект, вызвав его метод Select, но напрямую метод не вызывается, так что пришлось применить обходной маневр, активизировав вначале контейнер, а затем выделив область диаграммы:

    ThisWorkbook.Worksheets(3).ChartObjects(1).Activate ActiveChart.ChartArea.Select

    Так что заметьте, в этом случае приходится часто использовать оба объекта - ChartObjects и Chart для решения возникающих задач.

  • Диаграмма расположена на отдельном листе диаграммы. Специальные листы диаграмм рабочей книги составляют, как уже говорилось, коллекцию Charts. Хочу обратить внимание на два момента. Хотя коллекция представляет собой совокупность специальных листов рабочей книги, элементы этой коллекции являются не столько листами, сколько объектами Chart, задающими диаграммы. Эта ситуация не является типичной для коллекций. Связано это с тем, что на таком листе располагается только один объект Chart. Именно поэтому лист отождествляется с диаграммой. Вызов, который я сделал в отладочном окне Immediate: ThisWorkbook.Charts(1).Select ?ActiveChart.ChartTitle.Text

    выделил в текущей рабочей книге первый лист с диаграммой, а, следовательно, сделал активной и саму диаграмму. После чего стало возможным получить заголовок диаграммы. Заметьте, в данной ситуации метод Select работает без проблем. Для получения диаграммы я использовал коллекцию Charts, но заметьте, эта коллекция является частью коллекции Sheets, поэтому тот же результат можно получить, используя эту коллекцию:




    Содержание  Назад  Вперед