支配动机:Excel图表编程应用大全(1):初识图表编程

来源:百度文库 编辑:中财网 时间:2024/03/29 16:08:18
录制创建图表的过程代码
让我们手工创建不同的图表并录制宏,看看图表对象的一些属性和方法。
步骤1 准备数据,如下图所示。

步骤2 单击“开发工具—录制宏”。
步骤3 将宏命名为BuildSalesChart,如下图所示。

步骤4 单击“确定”,开始录制宏。
步骤5 选择单元格A1:E7,如下图所示。

步骤6 单击“插入—柱形图”,在“三维柱形图”中选择最左边的图表类型,如下图所示。

步骤7 停止宏录制器。
此时,在工作表中插入了新图表,如下图所示。注意,Excel选择了与每个图表元素相关的数据区域(图例、值和水平轴标签)。

上面的图表将销售额按月分组,帮助我们看到哪类产品在该月销售最好。
除了插入图表外,Excel同时添加了上下文功能区。上下文功能区提供了与当前所选对象相关的命令。下图显示了“图表工具”上下文功能区,包含三个功能区:设计、布局、格式。

Excel默认的图表操作是按列显示数据值(本例中按产品)。垂直轴和水平轴可能不会按你期望的方向显示数据,假设本例就是这种情形。下面,让我们再录制一个宏,看看Excel切换图表数据方向从列到行的命令应用。
步骤1 在“开发工具”选项卡中,单击“录制宏”。
步骤2 将宏命名为“ChartByRow”。
步骤3 单击图表内任意位置选择图表。
步骤4 从“图表工具”中选择“设计”选项卡。
步骤5 从“设计”选项卡的“数据”组中,选择“切换行/列”命令,如下图所示。

步骤6 停止宏录制器。
图表现在应该如下图所示。

上面的图表能够很方便地查看每种产品的销售趋势。
查看代码
让我们看看到目前为止生成的宏代码。BuildSalesChart宏使用选择的数据区域创建了一个三维柱状图表。ChartByRow宏切换默认的图表数据方向,由列切换为行。
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