该函数用来设置图表的特殊效果。
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 IfEnd 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 IfEnd With Exit SubhError:App.LogEvent Err.Description, vbLogEventTypeErrorErr.Raise Err.Number, Err.Source, Err.DescriptionEnd Sub
特效只对三维图表有效。Chart对象包含Walls(背景墙)和Floor(三维图表的底面)两个对象,其中又包含着填充的边界、过渡等细节属性。如有必要的话可以显露并使用这些细节属性。
我们已经提供了实现特殊效果的基本机制,在本文的第一部分也可以看到图表特效的一些例子。对特殊效果来说最重要的一个对象是Fill对象,包括Walls和Floor对象在内的许多构造用户界面的Excel对象都包含Fill对象。PresetGradient()和OneColorGradient()这两个方法的功能分别是用Excel中预定义的过渡效果或颜色填充容器。