该函数用来设置图表的特殊效果。
Sub SetBackgroundEffect(ByVal iXlChartFillEffect As xlChartFillEffect)
On Error GoTo hError
'--- 将图表设置为三维
oExcelChart.WallsAndGridlines2D = False
'--- 背景墙
With oExcelChart.Walls
.Border.Weight = xlThin
.Border.LineStyle = xlContinuous
'--- 特效代码是否在范围之内
If (iXlChartFillEffect > 0 And iXlChartFillEffect < 24) Then
.Fill.PresetGradient Style:=1, Variant:=1, _
PresetGradientType:=iXlChartFillEffect
Else
.Fill.OneColorGradient Style:=1, Variant:=1, Degree:=0.231372549019608
.Fill.ForeColor.SchemeColor = 15
End If
End With
'--- 底面
With oExcelChart.Floor
.Border.Weight = xlHairline
.Border.LineStyle = xlAutomatic
'--- 特效代码是否在范围之内
If (iXlChartFillEffect > 0 And iXlChartFillEffect < 24) Then
.Fill.PresetGradient Style:=1, Variant:=1, _
PresetGradientType:=iXlChartFillEffect
Else
.Fill.OneColorGradient Style:=1, Variant:=1, Degree:=0.231372549019608
.Fill.ForeColor.SchemeColor = 15
End If
End With
Exit Sub
hError:
App.LogEvent Err.Description, vbLogEventTypeError
Err.Raise Err.Number, Err.Source, Err.Description
End Sub
特效只对三维图表有效。Chart对象包含Walls(背景墙)和Floor(三维图表的底面)两个对象,其中又包含着填充的边界、过渡等细节属性。如有必要的话可以显露并使用这些细节属性。
我们已经提供了实现特殊效果的基本机制,在本文的第一部分也可以看到图表特效的一些例子。对特殊效果来说最重要的一个对象是Fill对象,包括Walls和Floor对象在内的许多构造用户界面的Excel对象都包含Fill对象。PresetGradient()和OneColorGradient()这两个方法的功能分别是用Excel中预定义的过渡效果或颜色填充容器。