Sub BuildSalesChart()'' BuildSalesChart Macro'' Range("A1:E7").SelectActiveSheet.Shapes.AddChart.SelectActiveChart.SetSourceData Source:=Range("'每月销售数据'!$A$1:$E$7")ActiveChart.ChartType = xl3DColumnClusteredEnd Sub
代码总共有4行。第1行用来选择创建图表的数据区域,第2行添加一个图表并通过Select方法激活该图表。注意,图表是Shape对象的成员,AddChart方法返回一个Shape对象。
AddChart方法有一些可选参数,没有必需的参数。
表:AddChart方法的参数
参数名称 数据类型 描述 Type xlChartType 图表类型(柱状图、折线图、饼图,等) Left Variant 从图表左边缘到A列左边缘的距离 Top Variant 从图表顶部边缘到工作表顶部边缘的距离 Width Variant 图表的宽度 Height Variant 图表的高度
xlChartType类型包括Excel发布的所有图表类型,如下面的列表所示。
第3行代码将所选择的数据区域赋值给图表的Source属性。
第4行使用ActiveChart对象的ChartType属性直接设置图表类型。ChartType属性与AddChart方法的可选参数具有相同的属性值。因此,调用AddChart方法时就可以设置ChartType属性,以简化宏录制的代码:
Sub BuildSalesChart()'' BuildSalesChart Macro'' Range("A1:E7").SelectActiveSheet.Shapes.AddChart(xl3DColumnClustered).SelectActiveChart.SetSourceData Source:=Range("'每月销售数据'!$A$1:$E$7")End Sub
表:xlCharType枚举值
下面,再来看看ChartByRow宏中切换图表数据方向的代码:
Sub ChartByRow()'' ChartByRow Macro'' ActiveSheet.ChartObjects("图表 3").ActivateActiveChart.PlotBy = xlRowsEnd Sub
代码总共只有2行。第1行代码调用ChartObjects.Activate方法来激活名为“图表 3”的图表。ChartObject对象代表在工作表中嵌入的图表,ChartObjects对象包含在图表工作表、对话框工作表、或工作表中所有ChartObject对象的集合
ActiveChart.PlotBy属性设置或返回xlRowCol枚举的值。下表列出了xlRowCol枚举项的值。
表:xlRowCol枚举
名称 值 xlRows 1 xlColumns 2