Excel. Трюки и эффекты | страница 155



' Сохранение прежнего цвета категории

dblColor = srSerie.Interior.Color

' Сохранение стиля линий

intBorderLineStyle = srSerie.Border.LineStyle

' Цвет границы

intBorderColorIndex = srSerie.Border.ColorIndex

' Толщина линий границы

intBorderWeight = srSerie.Border.Weight

' Создание автофигуры

Set shpShape = ActiveSheet.shapes.AddShape _

(msoShapeRectangle, 1, 1, 100, 100)

With shpShape

' Закрашиваем нужным цветом

.Fill.ForeColor.RGB = dblColor

' Делаем прозрачной

.Fill.Transparency = 0.4

' Убираем линии

.Line.Visible = msoFalse

End With

' Копируем автофигуру в буфер обмена

shpShape.CopyPicture Appearance:=xlScreen, _

Format:=xlPicture

' Вставляем автофигуру в изображения столбцов _

категории и настраиваем

With srSerie

' Собственно вставка

.Paste

' Возвращаем на место толщину линий

.Border.Weight = intBorderWeight

' Стиль линий

.Border.LineStyle = intBorderLineStyle

' Цвет границы

.Border.ColorIndex = intBorderColorIndex

End With

' Автофигура больше не нужна

shpShape.Delete

End If

Next srSerie

End Sub

После применения данного макроса диаграмма станет прозрачной. Степень прозрачности указывается в строке. Fill. Transparency = 0. 4 – в приведенном примере она равна 40 %. При необходимости данный параметр можно изменить по своему усмотрению. Например, на рис. 4.7 показана диаграмма, у которой прозрачность составляет 60 % (эта же диаграмма изображена на рис. 4.4 в непрозрачном виде).

Данный трюк применяется к созданным ранее диаграммам.

Рис. 4.7. Прозрачная диаграмма

Построение диаграммы на основе данных нескольких рабочих листов

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

Предположим, что у нас имеются пять разных таблиц, которые расположены на пяти рабочих листах, причем количество строк в этих таблицах различается. Одна из таких таблиц показана на рис. 4.8.

Рис. 4.8. Пример таблицы


Для построения диаграмм на основании данных, хранящихся в этих таблицах, можно использовать макрос, код которого приведен в листинге 4.11.

Листинг 4.11. Одновременное создание нескольких диаграмм

Sub ManyCharts()

Dim intTop As Long, intLeft As Long

Dim intHeight As Long, intWidth As Long