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

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

577

1 Сохранение диаграммы в формате G IF

 

FName = T h is W o rk b o o k . P a th & A p p lic a t io n . P a th S e p a ra to r

& _

te m p . g i f "

T em p C h art. E x p o rt F ile n a m e : =FName, f ilt e r N a m e : = "G IF " A c t iv e s h e e t . C h a r tO b je c ts ( 1 ) .D e le te

A p p lic a t io n . S c re e n U p d a tin g = T ru e End Sub

После завершения работы процедуры C re a te C h a rt рабочий лист будет содержать объект ChartOb j e c t с диаграммой данных на основе строки активной ячейки. Но объект C hartO bject останется невидимым, так как свойство S creen U p d atin g объекта Ap­ p lic a tio n отключено.

Последний оператор в процедуре ShowChart загружает диалоговое окно UserForm. Ниже приведен листинг процедуры U s e rF o rm _ In itia liz e . Эта процедура сохраняет диаграмму в виде файла GIF, удаляет объект C h a rtO b je c t и загружает файл формата GIF в элемент управления Image.

P riv a te

Sub

U s e r F o r m _ In it ia liz e ()

 

Dim

FName

As S t r in g

 

FName = T h is W o rk b o o k . P a th & _

 

A p p lic a t io n . P a th S e p a ra to r &

" te m p .g if"

U s e rF o rm l. Im a g e l. P ic t u r e = L o a d P ic tu re (F N a m e )

End Sub

 

 

 

 

К о м п а к т-д и ск

 

 

Рассматриваемая в этом разделе рабочая книга находится на прилагаемом

 

компакт-диске в файле c h a r t

in u s e rfo rm .x ls m .

События диаграмм

В Excel поддерживается ряд событий, связанных с диаграммами. Например, активиза­ ция диаграммы приводит к генерированию события A c tiv a te . Событие C a lc u la te происходит в случае, когда диаграмма принимает новые либо измененные данные. Можно также написать код VBA, который вызывается, когда происходит определенное событие.

П ерекрестная ссы лка

Для получения дополнительных сведений о событиях обратитесь к главе 19.

В табл. 18.1 перечислены все события диаграмм.

Таблица 18 .1 . Собы тия объекта C h a rt

Событие

Действие, приводящее к возникновению события

Activate

Активизирован лист диаграммы или внедренная диаграмма

BeforeDoubleClick

На встроенной диаграмме выполнен двойной щелчок. Это событие

 

происходит перед принятой по умолчанию реакцией на двойной

BeforeRightclick

щелчок мышью

На встроенной диаграмме выполнен щелчок правой кнопкой мыши.

 

Это событие происходит перед принятой по умолчанию реакцией на

 

щелчок правой кнопкой мыши

Calculate

На диаграмме отображаются новые или обновленные данные

19 Зак. 3 1 0 7

580

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

msg = "Спасибо за просмотр д и аграм м ы ."

MsgBox msg, , A ctiveW orkboo k .N am e

End Sub

Процедура C h a rt_ S e le c t, код которой приведен ниже, вызывается после выбора произвольного элемента диаграммы.

P r iv a te

Sub C h a rt_ S e le c t(B y V a l

E le m e n tID

As Long,

_

 

B yV al A r g l

As

Long,

B yV al A rg2

As

Long)

 

 

 

Dim

Id

As

S tr in g

 

 

 

 

 

 

 

 

 

 

 

 

 

S e le c t

Case E le m e n tID

 

 

 

 

 

 

 

 

 

 

 

 

 

Case

x lA x is :

Id

=

"О сь"

 

 

 

 

 

 

 

 

 

 

Case

x l A x i s T it le :

Id

=

 

"Н азвание

оси"

 

 

 

 

 

Case

x lC h a rtA re a :

Id = "О бласть диаграммы"

 

 

 

Case

x l C h a r t T it le :

Id

=

"З а го л о в о к диаграммы"

 

 

 

Case

x lC o rn e r s :

Id

=

"У глы "

 

 

 

 

 

 

 

 

Case

x lD a ta L a b e l:

Id

=

 

"Подпись

данных"

 

 

 

 

Case

x lD a ta T a b le :

Id

=

 

"Таблица

данных"

 

 

 

 

Case

x lD o w n B a rs :

Id

=

"Нижние полосы"

 

 

 

 

 

Case

x lD r o p L in e s :

Id

=

 

"П о д за го л о в о к".

 

 

 

 

Case

x lE r r o r B a r s :

Id

=

 

"П огреш ность"

 

 

 

 

 

Case

x l F l o o r :

Id

=

"О снование"

 

 

 

 

 

 

Case

x lH iL o L in e s :

Id

=

 

"В ерхние/ниж ние линии"

 

 

 

Case

x lL e g e n d :

Id

= "Л е ге н д а "

 

 

 

 

 

 

Case

x lL e g e n d E n try :

Id

 

=

"Запись

легенды "

 

 

 

 

Case

x lL e g e n d K e y :

Id

=

 

"Ключ

легенды "

 

 

 

 

 

Case

x lM a jo r G r id lin e s :

 

Id

=

 

"Базовые

линии с е т ки "

 

 

Case

x lM in o r G r id lin e s :

 

Id

=

 

"В спом огательны е

линии с е т к и "

 

 

Case

x lN o th in g :

Id

=

"Н и че го "

 

 

 

 

 

 

Case

x lP lo tA r e a :

Id

=

"О бласть п о строени я"

 

 

 

Case

x lR a d a rA x is L a b e ls :

Id

=

"Подписи

оси

л е п е с тка "

 

 

Case

x lS e r ie s :

Id

=

"Ряд

данных"

 

 

 

 

 

 

Case

x lS e r ie s L in e s :

Id

 

=

"Линии

ряда

данных"

 

 

 

Case

x lS h a p e :

Id

=

"Форма"

 

 

 

 

 

 

 

 

Case

x lT r e n d lin e :

Id

=

"Тенденция"

 

 

 

 

 

Case

x lU p B a rs :

Id

=

"Верхние

полосы"

 

 

 

 

 

Case

x lW a lls :

Id

=

"С те н ки "

 

 

 

 

 

 

 

 

Case

x lX E r r o r B a r s :

Id

=

"Гори зонтал ьн ая погреш н ость"

 

 

Case

x lY E r r o r B a r s :

Id

=

"В ертикальная

погреш н ость"

 

 

Case

E ls e : :

Id

=

"Н ечто

н е и зв е стн о е "

 

 

 

End

S e le c t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MsgBox

"Тип вы дел ения:"

& Id

& v b C rL f

& A r g l & v b C rL f

& A rg2

End Sub

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Эта процедура отображает окно сообщения, в котором находится описание выделенно­ го элемента. Если произойдет событие S e le c t, аргумент Elem entID будет содержать целое число, которое соответствует выделенному элементу. Аргументы A rgl и Arg2 со­ держат дополнительную информацию о выделенном элементе (дополнительные сведения об этом можно найти в справочной системе). Структура S e le c t Case применяется для преобразования встроенных констант в описательные строки.

П р и м е ч а н и е

Это далеко не полный список элементов, входящих в состав объекта C hart.

Именно поэтому пришлось воспользоваться оператором Case E ls e .