Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая / Источники / excel_2010_professionalnoe_programmirovanie_na_vba_RuLit_Me_412629.pdf
Скачиваний:
4
Добавлен:
27.09.2025
Размер:
22.97 Mб
Скачать

554

Часть V. Профессиональные методы программирования

Кратко о диаграммах

В Excel можно создавать самые разные диаграммы на основе данных рабочего листа. Причем пользователь может управлять практически каждым их элементом.

Диаграммы Excel насыщены объектами, каждый из которых имеет собственные свой­ ства и методы. Таким образом, управление диаграммами посредством кода VBA связано с определенными трудностями, а функция записи макросов в Excel не слишком помогает при решении возникающих проблем. В этой главе рассматриваются основные концепции создания кода VBA, предназначенного для управления диаграммами. Главное— разо­ браться в тонкостях объектной модели диаграмм. Для начала ознакомимся с общими сведениями о диаграммах Excel.

Н овинка

В Excel 2010 появился новый вид диаграмм, которые называются спарклайнами. Этот вид диаграмм имеет настолько маленькие размеры, что помещается в одной ячейке. При создании спарклайнов используется объектная модель, которая коренным образом отличается от объектной модели, применяемой при создании диаграмм. Эта тема подробнее рассматривается далее.

Располож ение д иаграм м

В Excel диаграмма может размещаться в одном из следующих двух мест рабочей книги.

На рабочем листе в качестве встроенного объекта. На рабочем листе может находиться произвольное количество встроенных диаграмм.

На отдельном листе диаграммы. Обычно на листе диаграммы находится одна диаграмма.

Большинство диаграмм создается вручную посредством команд из группы Вставка^Диаграммы (Insert^Charts). Для создания диаграмм можно также прибегнуть к коду VBA. Он может применяться для изменения существующих диаграмм.

С о в е т

Самый быстрый способ создания диаграммы — выделить данные и нажать комбинацию клавиш <Alt+F1>. В результате выполнения этих действий Excel создает внедренную диаграмму, а также выбирает ее тип, заданный по умолчанию. Для создания диаграммы на листе диаграммы выделите данные и нажмите клавишу <F11 >.

Ключевой при работе с диаграммами является концепция активной диаграммы. Ко­ гда пользователь щелкает на встроенной диаграмме или выделяет лист диаграммы, акти­ визируется объект C h a rt. В VBA свойство A c t iv e C h a rt возвращает активный объект C h a rt (если такой существует). Можно создать код, который будет управлять этим объек­ том (он будет подобен коду для работы с объектом W orkbook, возвращаемым свойст­ вом A c t iv e W o rk b o o k ).

Ниже приведен пример. Если диаграмма активизирована, то следующий оператор отобразит свойство Name активного объекта C h a rt:

MsgBox A ctive C ha rt.N am e

Если диаграмма не активизирована, выполнение предыдущего оператора приведет к появлению ошибки.

Глава 18. Управление диаграммами

555

П ри м еч ан и е

Вовсе не обязательно активизировать диаграмму для того, чтобы управлять ею с помощью кода VBA.

Диаграммы и ф ункция записи м акроса

В предыдущих главах неоднократно рекомендовалось использовать функцию записи макросов для изучения объектов, свойств и методов. В издании этой книги, посвящен­ ном версии Excel 2007, упоминалось о серьезной проблеме, связанной с применением функций записи макросов при работе с диаграммами, а именно: эту функцию невозмож­ но было применять для записи каких-либо операций, связанных с созданием либо изме­ нением диаграмм. К счастью, эта проблема была устранена в версии Excel 2010. Да-да, функция записи макросов в Excel 2010 работает вполне удовлетворительно. Сгенериро­ ванный ею код, конечно, далек от совершенства, но все же это большой шаг вперед по сравнению с версией Excel 2007.

Автоматически сгенерированные макросы лучше всего использовать в учебных це­ лях. Код подобного макроса поможет установить взаимосвязь между объектами, свойст­ вами и методами.

Замечание о со в м е сти м о сти

Код VBA, представленный в этой главе, использует ряд новых свойств и методов, применяемых для управления диаграммами, которые появились в Excel 2007. Поэтому этот код вряд ли будет работать в предыдущих версиях Excel.

Объектная м одель диаграм м ы

Первое знакомство с объектной моделью диаграммы может вызвать у пользователя чувство растерянности. И это неудивительно, ведь структура этой модели очень сложна.

Предположим, что необходимо изменить заголовок, отображаемый на встроенной диаграмме. Объект верхнего уровня— это объект A p p lic a t io n (Excel). Объект A p ­ p lic a t io n содержит объект W orkbook, в котором находится объект W o rk s h e e t. По­ следний содержит объект C h a rt O bj e c t, а в нем расположен объект C h a rt. Объект Chart содержит объект C h a r t T it le , а объект C h a r t T it le имеет свойство T e x t, которое представляет объект, отображаемый в заголовке диаграммы. Ниже в графиче­ ском виде представлена иерархия объектов встроенной диаграммы.

A p p lic a tio n

Workbook

W orksheet

C hartO bj e c t

C ha rt

C h a rtT itle

Код VBA должен, конечно же, следовать этой объектной модели. Например, чтобы присвоить заголовку диаграммы значение “Ежегодные продажи”, воспользуйтесь сле­ дующим оператором VBA.

Worksheets( " Лист1") . C hartO bj e c t s (1) . C h a rt. C h a r t T it le . _

.Text = "Ежегодные продажи"

В этом выражении предполагается, что активная рабочая книга представлена объек­ том W orkbook. Оператор обращается к первому элементу коллекции рабочих листов