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

870

Часть VII. Дополнительные темы

Изменение цветов диаграммы

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

На рис. 30.14 показана простая гистограмма Диаграмма 1. Эта диаграмма состоит из двух рядов данных, легенды и заголовка диаграммы.

Название диаграм м ы

I Мужчины

■ Женщины

Мар

Рис. 30.14. Пример простой гистограммы

Ниже показан оператор VBA, изменяющий цвет первого ряда данных на красный.

A c tiv e s h e e t. C h a rtO b je c ts ( "Диаграмма 1 " ) . C h a rt. _

S e r ie s C o lle c tio n ( 1 ) . F o rm a t. F i l l . F o re C o lo r. RGB = vbRed

У непосвященных этот оператор вызывает чувство растерянности, поскольку вклю­

чает очень много объектов. Ниже рассматривается иерархия этих объектов.

Активный лист содержит коллекцию C h a rtO b j e c ts .

В этой коллекции имеется

один объект C h a r tO b je c t под названием Диаграмма

1. Свойство C h a rt объекта

C h a rtO b je c t возвращает объект C h a rt. Объект C h a rt

включает коллекцию S e r i ­

e s C o lle c t io n , и один объект S e r ie s в этой коллекции содержит индекс 1. Свойство F o rm a t объекта S e r ie s возвращает объект C h a rt F o rm a t. Свойство F i l l объекта

C h a rt F o rm a t возвращает объект F i l l F o rm a t. Свойство F o r e C o lo r объекта F

i l l -

F o rm a t возвращает объект C o lo rF o rm a t. Свойству RGB объекта C o lo rF o rm a t

при­

сваивается значение красного цвета.

 

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

Обратитесь к главе 18 для получения дополнительных сведений о работе с диаграммами посредством VBA.

Еще один способ записи предыдущего оператора— использование объектных перемен­ ных для идентификации отдельных объектов (а также выявления связей между объектами).

Sub

C h a n g e S e rie slC o lo r

 

 

Dim

M yC hartO bject

As

C h a rtO b je c t

 

Dim

MyChart

As

C ha rt

 

 

Dim

M ySeries

As

S e rie s

 

Dim

M yChartForm at

As

C hartForm at

 

Dim

M y F illF o rm a t

As

F illF o rm a t

 

Dim

M yColorForm at

As

C olorF orm at

'

Создание объектов

 

 

Глава 30. Работа с цветом

871

Set

M yC hartO bject

= A c tiv e S h e e t. C h a rtO b je c ts ( "Диаграмма 1")

Set

MyChart

= M yC h a rtO b je ct. C hart

Set

M ySeries

= M yC h art. S e r ie s C o lle c tio n (1)

Set

M yChartForm at

= M yS e rie s . Format

Set

M yFi11Form at =

M yC hartForm at. F i l l

Set

M yColorForm at

= M y F illF o rm a t. F o re C o lo r

1Изменение цвета

M yC olorF orm at. RGB = vbRed

End Sub

Свойство RGB принимает десятичное значение цвета, определенного с помощью встроенной константы VBA. В следующем списке перечислены связанные с цветом свойства объекта C olorForm at.

Obj ectT h em eC o lo r. Число между 0 и 16, которое представляет цвет темы. Эти значения в VBA кодируются с помощью констант. Например, константа msoThe- m eC olorA ccent3 содержит значение 7.

T intA ndS hade . Число между -1 и +1, которое представляет более светлый или темный оттенок цвета темы.

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

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

Примеры из этого раздела находятся на прилагаемом к книге компакт-диске в файле c h a rt c o lo rs . xlsm .

Можно также определять цветовые градиенты. Ниже приводится пример, в котором предопределенный градиент применяется ко второму ряду данных в диаграмме. Обрати­ те внимание на то, что для настройки градиента используется объект F i l l Form at.

Sub

A d d P re s e tG ra d ie n t()

 

Dim

MyChart

As

C h a rt

 

Set

MyChart

=

A c tiv e S h e e t. C h a rtO b je c ts ( "Диаграмма 1 " ) . C ha rt

 

W ith

.M yChart. S e r ie s C o lle c tio n ( 1 ) . F o r m a t . F ill

 

. P re s e tG ra d ie n t

_

 

 

S t y le : = m s o G ra d ie n tH o riz o n ta l, _

 

 

V a ria n t:= 1 ,

_

 

 

P re s e tG ra d ie n tT y p e : = m soG ra die ntF ire

 

End

W ith

 

 

 

End

Sub

 

 

 

 

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

Sub R e c o lo rC h a rtA n d P lo tA re a ()

 

 

 

Dim

MyChart

As

C ha rt

 

 

 

 

Set

M yChart

=

A c tiv e S h e e t. C h a rtO b je c ts ( "Диаграмма

1 " ) . C ha rt

W ith

MyChart

 

 

 

 

 

 

. C h a rtA re a . F o rm a t. F

i l l . F o re C o lo r. O bjectThem eC olor

= _

 

m soThem eColorAccent6

 

 

 

. C h a rtA re a . F o rm a t. F

i l l . F o re C o lo r. TintAndShade

=

0 .9

. P lo tA re a . F o rm a t. F

i l l . F ore C o lor.O b jectT h em eC o lor

=

_

 

m soThem eColorAccent6

 

 

 

. P lo tA re a . F o rm a t. F

i l l . F o re C o lo r. TintAndShade =

0 .5

 

872

Часть VII. Дополнительные темы

End W ith

End Sub

В этом последнем примере раздела каждому элементу диаграммы присваивается слу­ чайный цвет. Применение этого макроса приведет к тому, что ваша диаграмма будет вы­ глядеть плачевно, но зато вы ознакомитесь со способами изменения цвета отдельных элементов диаграммы. Для определения используемого цвета процедура UseRandom - C o lo rs применяет простую функцию R andom C olor.

Sub UseRandom Colors()

Dim

MyChart

As

C ha rt

Set

MyChart

=

A c tiv e S h e e t. C h a rtO b je c ts ( "Диаграмма 4 " ) . C ha rt

W ith

MyChart

 

 

 

. C h a rtA re a . F o rm a t. F

i l l . F o re C o lo r. RGB

= RandomColor

 

. P lo tA re a . F o rm a t. F

i l l . F o re C o lo r. RGB =

RandomColor

 

 

. S e r ie s C o lle c tio n ( 1 ) . F o rm a t. F

i l l . F o re C o lo r. RGB

=

_

 

RandomColor

 

 

 

 

 

 

. S e r ie s C o lle c tio n ( 2 ) . F o rm a t. F

i l l . F o re C o lo r. RGB

=

_

 

RandomColor

 

 

 

 

 

 

. Legend. F o n t. C o lo r

= RandomColor

 

 

 

 

. C h a r t T it le . F o n t. C o lo r = RandomColor

 

 

 

 

.A x e s (x lV a lu e ) .M a jo rG rid lin e s . B o rd e r. C o lo r = RandomColor

 

.A x e s (x lV a lu e ) . T ic k L a b e ls . F o n t. C o lo r

= RandomColor

 

.A x e s (x lV a lu e ) . B o rd e r. C o lo r =

RandomColor

 

 

 

.A x e s (x lC a te g o ry ). T ic k L a b e ls . F o n t. C o lo r = RandomColor

 

.A x e s (x lC a te g o ry ). B o rd e r. C o lo r

= RandomColor

 

 

 

End W ith

 

 

 

 

 

End

Sub

 

 

 

 

 

F u n c tio n Random Color()

 

 

 

 

 

 

RandomColor = A p p lic a tio n . RandBetween(0,

RGB(255,

255, 255))

End

F u n c tio n

 

 

 

 

 

Глава

Часто задаваемые вопросы о программировании

вExcel

Вэтой главе...

Списки часто задаваемых вопросов

Общие вопросы об Excel

Редактор Visual Basic.

Процедуры

Функции

Объекты, свойства, методы и события

Пользовательские диалоговые окна

Надстройки

Пользовательский интерфейс

Вэтой главе приводятся ответы на часто задаваемые вопросы, касающиеся програм­ мирования в Excel.

Списки часто задаваемых вопросов

Те пользователи, которые часто “блуждают” в Интернете, знают, что такое FAQ (Fre­ quently Asked Questions). Это список часто задаваемых вопросов (и ответов на них), ка­ сающихся определенной темы. Такие списки публикуются в конференциях, целью кото­ рых является сокращение потока одинаковых вопросов на определенную тему. Однако зачастую такие документы не выполняют возложенную на них функцию, так как одина­ ковые вопросы продолжают повторяться.