Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2 семестр / vba_2002

.pdf
Скачиваний:
82
Добавлен:
09.04.2015
Размер:
9.9 Mб
Скачать

По умолчанию диаграмма не отображает ланные, которые скрыты на рабочем листе. Команда Excel Автофильтр скрывает строки, не соответствующие определенному критерию. Предлагаемое ею решение достаточно очевидно и просто. Выберите Данные1* ФильтраАвтофильтр, чтобы перейти в режим автофильтра. Каждый заголовок строки в фильтруемом списке содержит стрелку выпадающего списка. Щелкните на опции Условие. После этого введите критерии фильтрации, которые определяют даты, отображаемые на диаграмме. Установки, показанные на рис. 18.19, скрывают все строки, кроме тех, которые содержат данные февраля.

Полученная диаграмма показана на рис. 18.20.

Эта рабочая книга содержится на Web-уэле издательства.

/•не. 18.19. В диалоговом окне Пользовательский автофильтр указываютсяусловияфильтрации данныхлиста

Рис. 18.20. На диаграмме отображаются только данные отображаемых наэкранеячеек

Если эта методика не работает, то необходимо изменить параметры диаграммы. Активизируйте диаграмму, после этого выберите Сервис^Параметры, В диалоговом окне Параметры щелкните на вкладке Диаграмма и установите флажок Отображать только видимые ячейки. Чтобы обеспечить отображение диаграммы даже при скрытии ячеек с данными, необходимо установить привязку диаграммы в значение не перемещать и не изменять размеры. Воспользуйтесь командой Формат^ Выделенная область диаграммы для изменения этого параметра,

Часть V. Совершенныеметодыпрограммирования

489

Хранение нескольких диаграмм на одном листе диаграммы

Большинство пользователей Excel, которые задумываются над рассматриваемым в данном разделе вопросом, согласятся, что лист диаграммы содержит только одну диаграмму. Почти всегда это высказывание справедливо, Но хранение нескольких диаграмм на листе диаграммы возможно. Программа Excel предоставляет для этого определенную возможность. Если активизировать встроенную диаграмму и выбрать команду ДиаграммаОразмещение, то Excel отобразит диалоговое окно Размещение диаграммы. Если выбрать переключатель Отдельном (и указать существующий лист диаграммы), то новая диаграмма будет размещена поверх той, которая уже расположена на листе диаграммы.

Зачастую возникает необходимость в размещении встроенной диаграммы на пустом листе диаграммы. Для того чтобы создать пустой лист диаграммы, выберите одну пустую ячейку и нажмите клавишу <F11>.

Одним из преимуществ хранения нескольких диаграмм на одном листе является то, что в таком случае можно использовать команду Вид=>По размеру окна для автоматического масштабирования диаграмм в соответствии с размерами окна. На рис. 18.21 показан пример листа диаграммы, который содержит шесть встроенных диаграмм.

Рис. 18.21. Этот лист диаграммы содержит шесть встроенныхдиаграмм

Данная рабочая книга находится на Web-узле издательства.

490

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

Использование в диаграмме связанных изображений

Excel предоставляет возможность отображения таблицы данных внутри диаграммы. Можно выбрать этот вариант на третьем шаге мастера диаграмм. В результате таблица с данными, на основе которых строится диаграмма, отображается в области диаграммы. Такая возможность достаточно полезна, однако она не предоставляет должного уровня гибкости. Например, существует ограничение на форматирование данных, нельзя точно контролировать расположение таблицы данных в области диаграммы (таблица всегда располагается под диаграммой) и т.д.

Альтернативой отображению таблицы с данными является использование связанного изображения (рис. 18.22).

Рис. 18.22.Этадиаграммасодержитсвязанноеизображениеиспользуемоговнейдиапазона

Для создания связанного изображения вначале создайте обычную диаграмму. После этого выполните следующие действия.

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

2.Выполните Правкам Копировать.

3.Активизируйте диаграмму.

4.Нажмите <Shift> и выберите Правка^Вставить рисунок, в результате чего будет вставлено несвязанное изображение диапазона.

5.Для того чтобы связать изображение, выберите его и введите диапазон в строке, формул. Самый простой способ достичь такого результата— ввести символ равенства и повторно выделить диапазон.

Теперь для изображения устанавливается интерактивная связь с исходным диапазоном. Если изменить значения параметров форматирования, то они будут отображены в связанном изображении.

Часть V. Совершенные методы программирования

4&1

Данная рабочая книга доступна на Web-узле издательства.

Анимированные диаграммы

Excel может отображать простую анимацию (многие пользователи не знают об этой возможности). Например, можно анимировать фигуры и графики. Рассмотрим график, показанный на рис. 18.23.

Рис.18.23.СпомощьюпростойпроцедурыVBAможносделатьиз этогографикаинтереснуюанимационнуюкартинку

Значения аргумента X (столбец А) зависят от значения, которое хранится в ячейке Al. Значение в каждой строке равно сумме значения в предыдущей строке и значения в ячейке Al. Столбец В содержит формулы, которые подсчитывают значение SIN для соответствующего значения в столбце А. Представленная далее простая процедура создает интересную анимационную последовательность. Она изменяет значение в ячейке Al, что приводит к изменению диапазона значений X и Y.

Web-узел издательства содержит рабочую книгу, демонстрирующую анимированную диаграмму, а также несколько других примеров анимации.

Создание диаграммы с графиком гипоциклоиды

Даже если тригонометрия в школе вызывала у вас трудности, пример, приведенный в этом разделе, вам точно понравится (он основан на тригонометрических функциях). Рабочая книга, показанная на рис. 18.24, содержит бесконечное количество гипоциклоидных кривых.

492

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

Гипоциклоида — это траектория точки, находящейся на окружности, которая движется внутри другой окружности. Подобная техника использовалась в популярной детской игрушке "Спирограф".

Puc. 18.24. Эта рабочая книга генерирует бесконечное количество гшюциклоидныхкривых

Данная рабочая книга доступна на Web-узле издательства.

В приведенном примере используется простой график. Данные для X и Y генерируются на основе формул, которые хранятся в столбцах А и В. Элементы управления S c r o l l b a r в верхней части листа позволяют менять значения трех параметров, которые определяют внешний вил диаграммы. Эти элементы управления связаны с ячейками Bl, B2 и ВЗ. Они вставлены с панели инструментов Формы и не являются элементами управления ActiveX. Кроме того, диаграмма имеет кнопку Произвольно, которая генерирует случайные значения параметров.

Рабочая книга содержит только один макрос (показанный ниже). Он выполняется при щелчке на кнопке Произвольно. Этот макрос генерирует три случайных числа в диапазоне от 1 до 250 и вставляет эти числа в рабочий лист.

Sub Random_Click()

Randomize

Range("Bl") = Int{Rnd * 250)

Range("B2") = Int{Rnd * 250)

Range("B3") = Int(Rnd * 250) End Sub

ЧастьV.Совершенныеметодыпрограммирования

493

Создание диаграммы "часов"

Нарис, 18.25 показанграфик, которыйвидоизменентак, чтобы имитироватьциферблатчасов. Такая диаграмма не только выглядит, как часы, она и работает, как часы. Сложно,придумать при- чинудляотображениятакойдиаграммы,ноеесоздание—хорошеепрактическоеупражнение.

Данная рабочая книга доступна на Web-узле издательства.

Кроме диаграммы часов, рабочая книга содержит текстовое поле, которое отображает время в виде строки, как показано на рис. 18,26. Обычно это поле скрыто, но его можно отобразить, сбросив флажок Аналоговые часы.

Рис. 38.25. Это работающие часы, ко-

Рис. 18.26, Отобразить налисте циф-

торыесымитированыдиаграммой

ровые часы намного проще, но не на-

 

столькоэффектно,какобычные

При рассмотрении рабочей книги, которая содержится на Web-узле, обратите внимание на несколько факторов.

Объект ChartObject называется ClockChart и использует диапазон DigitalClock для цифрового отображения времени.

Две кнопки на листе добавлены с панели инструментов Формы. Каждой кнопке назначена процедура(StartClock и StopClock).

Элемент управления Checkbox (Флажок) (с именем cbClockType) на листе взят с панели инструментов Форма, а не с панели инструментов Элементы управления. Щелчок на этом объекте приводит к выполнению процедуры cbClockType_Click, которая изменяет значение свойства visible объекта ClockChart. Когда данный объект становится невидимым, пользователю открывается цифровой индикатор времени.

494

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

В качестве диаграммы используется график с четырьмя объектами S e r i e s . Эти последовательности представляют часовую стрелку, минутную стрелку, секундную стрелку, а также 12 цифр.

Процедура U p d a t e C l o c k выполняется при щелчке на кнопке Запуск. Эта процедура определяет видимость циферблата и выполняет необходимое обновление экрана. Процедура UpdateClock использует метод OnTime объекта A p p l i c a t i o n . Этот метод позволяет выполнять процедуру в определенное время. Перед завершением процедуры UpdateClock устанавливается новое событие OnTime, которое произойдет через одну секунду. Другими словами, процедура UpdateClock вызывается каждую секундуПроцедура U p d a t e C l o c k использует основные тригонометрические функции для определения углов отображения стрелок часов.

В отличие от многих других диаграмм, эта диаграмма не использует диапазон ячеек рабочего листа для хранения собственных данных. Вместо этого необходимые данные рассчитываются с помощью кода VBA и передаются непосредственно в свойства Values и XValues объектов S e r i e s диаграммы.

Рисование с помощью графика

Последний пример не имеет абсолютно никакого практического применения, но он чрезвычайно интересен и даже немного увлекателен. Рабочий лист состоит из встроенного графика и набора элементов управления (которые добавлены с панели инструментов Формы и не являются элементами управления ActiveX).

Эта рабочая книга содержится на Web-узле издательства.

Рмс.1S.27.Этотинструментрисованиянасамомделеявляетсявстроеннымграфиком

Часть V. Совершенные методы программирования

Щелчок на кнопке со стрелкой приведет к отображению отрезка на диаграмме, paiMep которого определяется значением "шага", устанавливаемого с помощью элемента управления Spinner. Приложив немного усилий (и терпения), можно создавать небольшие рисунки (рис. 18.27).

Щелчок на кнопке со стрелкой приведет к запуску макроса, который добавляет два значения в диапазон: значение X и значение Y. После этого переопределяются имена диапазонов (XRange и YRange), которые используются в формуле SERIES этой диаграммы. Особенно полезной может оказаться кнопка многоуровневой отмены. Щелчок на этой кнопке приводит к удалению в диапазоне последних двух значений и переопределению имен диапазонов. В число дополнительных возможностей входят изменение цвета линии и "сглаживание" линий.

Резюме

В данной главе была представлена вводная информация об об-ьектной модели диаграмм и продемонстрированы методы создания кода VBA, который позволяет управлять диаграммами.

Также в этой главе приведены примеры, которые отображают способы использования событий диаграмм. В следующей главе концепция событий будет рассмотрена более глубоко и подробно.

496

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

Концепция событий Excel

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

это специально именованная процедура, которая запускается при возникновении определенного события. Простым примером может считаться процедура CammandButtonl _ Click, которая выполняется каждый раз, когда пользователь щелкает на элементе управления CommandButton, находящемся в пользовательском диалоговом окне или непосредственно на рабочем листе.

Excel контролирует возникновение широкого диапазона событий. При появлении определенного события Excel может запускать указанную процедуру обработки. Ниже приводится несколько примеров событий, распознаваемых программой Excel:

открытие или закрытие рабочей книги;

активизация окна;

активизация или деактивизация листа;

ввод данных в ячейку или редактирование данных

вячейке;

сохранение рабочей книги;

расчет значений в листе;

щелчок на объекте;

обновление данных на диаграмме;

нажатие определенной клавиши или комбинашш клавиш;

двойной щелчок на ячейке;

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

Вэтой главе рассматриваются концепции событий Excel

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

Типы событий Excel

Excel запрограммирована на управление большим количеством событий, которые происходят в процессе работы. Эти события могут быть классифицированы следующим образом.

События объекта Workbook происходят в конкретной рабочей книге. Примером такого события можно назвать событие Open (возникает при открытии или создании рабочей книги), BeforeSave (возникает перед сохранением рабочей книги) и NewSheet (возникает при добавлении нового листа).

События объекта Worksheet происходят в конкретном рабочем листе. В число примеров событий этого объекта можно включить Change (изменение содержимого ячейки на листе), SelectionChange (изменение расположения курсора) и Calculate {пересчет значенийрабочего листа).

События объекта Chart — к ним относятся события диаграммы. К таким событиям можно отнести Select (выделен объект на диаграмме) и SeriesChange (изменилось значение точки данных в последовательности). Для управления событиями встроенной диаграммы необходимо использовать модуль класса, как это показано в главе 18.

События объекта Application происходят в приложении Excel. В число таких событий входят NewWorkbook (создана новая рабочая книга), WorkbookBeforeclose (закрывается одна из рабочий книг) и sheetChange (изменено содержимое ячейки в одной из рабочих книг). Для контроля над событиями объекта Application необходимо использовать модуль класса.

События объекта UserForm. Такие события происходят в определенном диалоговом окне UserForm или одном из объектов этого диалогового окна. Например, объект UserForm имеет событие I n i t i a l i z e (которое возникает перед отображением диалогового окна UserForm). Элемент управления CommandButton, который расположен в диалоговом окне UserForm, поддерживает событие Click (которое возникает при щелчке на этойкнопке).

События, не связанные с объектами. Последняя категория состоит из таких событий уровня приложения (объекта Application), которые называются событиями "On-": OnTime и OnKey. Эти события работают иначе, чем все остальные.

Данная глава организована в соответствии с приведенным выше списком. В пределах каждого из разделов приводятся примеры, которые демонстрируют использование некоторых событий.

Что необходимо знать о событиях ,

В этом разделе изложена важная информация, необходимая для работы с событиями и в процессе создания процедур обработки событий.

Понимание последовательностей событий

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

WorkbookNewSheet: происходит при добавлении нового листа.

SheetDeactivate: происходит, когда деактивизируется активный лист.

SheetActivate: происходит, когда активизируется добавленный лист.

498

Глава 19. Концепция событий Excel

Соседние файлы в папке 2 семестр