Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Эффект прозрачности диаграммы




Применение случайной цветовой палитры

Листинг 5.9. Случайная цветовая палитра

Sub RandomChartColors()

Dim intGradientStyle As Integer, intGradientVariant As Integer

Dim i As Integer

 

' Проверка, выделена ли диаграмма

If ActiveChart Is Nothing Then Exit Sub

 

' Изменение оформления всех категорий

For i = 1 To ActiveChart.SeriesCollection.Count

With ActiveChart.SeriesCollection(i)

' Вид градиентной заливки (случайный)

intGradientStyle = Int(Rnd * 7) + 1

If intGradientStyle = 6 Then intGradientStyle = 1

If intGradientStyle = 7 Then

intGradientVariant = Int(Rnd * 2) + 1

Else

intGradientVariant = Int(Rnd * 4) + 1

End If

' Применение градиента

.Fill.TwoColorGradient Style:=intGradientStyle, _

Variant:=intGradientVariant

' Установка случайных цветов фона и обводки (используются _

для градиента)

.Fill.ForeColor.SchemeColor = Int(Rnd * 57) + 1

.Fill.BackColor.SchemeColor = Int(Rnd * 57) + 1

End With

Next i

End Sub

Листинг 5.10. Эффект прозрачности диаграммы

Sub TransparentChart()

Dim shpShape As Shape

Dim dblColor As Double

Dim srSerie As Series

Dim intBorderLineStyle As Integer

Dim intBorderColorIndex As Integer

Dim intBorderWeight As Integer

 

' Проверка, есть ли выделенная диаграмма

If ActiveChart Is Nothing Then Exit Sub

' Изменение отображения каждой категории

For Each srSerie In ActiveChart.SeriesCollection

If (srSerie.ChartType = xlColumnClustered Or _

srSerie.ChartType = xlColumnStacked Or _

srSerie.ChartType = xlColumnStacked100 Or _

srSerie.ChartType = xlBarClustered Or _

srSerie.ChartType = xlBarStacked Or _

srSerie.ChartType = xlBarStacked100) Then

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

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




Поделиться с друзьями:


Дата добавления: 2015-06-25; Просмотров: 312; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.