本文主要介绍如何将动画应用于商业图表,如下图1所示。
本文主要介绍如何将动画应用于商业图表,如下图1所示。
图1
制作图表的示例数据如下图2所示的工作表:
图2
在工作表中放置几个表单控件并设置相应的格式,如图3所示。
图3
其中,“下拉框”控件的控件格式设置如图3,数据源区域为图2所示工作表的单元格区域A43:A46,所选值链接到单元格B37。
下面的3个选项按钮链接到名为“chart_type”的单元格。
最后的“开启动画”复选框链接到名为“b_animation”的单元格;“开启擦除”复选框链接到名为“b_easing”的单元格。
如图4所示,在单元格区域B33:B39中放置图3中的控件值、设置图表动画的步骤以及图表标题。单元格区域D33:D39中为列B中对应单元格所定义的名称。
图4
其中,单元格B39所定义的名称为一个命名公式:
=INDEX($A$43:$A$46,record_index)
图5列出了工作簿中所有定义的名称:
图5
其中,old和switch_to_record是在运行VBA代码时添加的。
VBA代码如下:
PrivatebFinished As Boolean
PublicSub AnimateChart()
Dim i As Integer
bFinished = False
ThisWorkbook.Names.Add “old”,[chart_values]
ThisWorkbook.Names.Add”switch_to_record”, [record_index].Value
If [b_animation] Then
For i = 1 To [animation_steps]
[step] = i
DoEvents
If bFinished Then Exit For
Next i
End If
bFinished = True
EndSub
PublicSub ChangeChartType()
Const CHART_TYPE_COLUMN = 1
Const CHART_TYPE_LINE = 2
Const CHART_TYPE_AREA = 3
WithWorksheets(“demo”).ChartObjects(1).Chart
Select Case [chart_type]
Case CHART_TYPE_COLUMN
.ChartType = xlColumnClustered
Case CHART_TYPE_LINE
.ChartType = xlLineMarkers
Case CHART_TYPE_AREA
.ChartType = xlArea
End Select
End With
EndSub
其中,ChangeChartType过程关联到选项按钮,用于更改图表类型;AnimateChart过程关联到下拉框,用于实现选择不同数据时的图表动画效果。
最后的效果如下图6所示。
图6