Excel图表编程应用大全(1):初识图表编程

录制创建图表的过程代码
让我们手工创建不同的图表并录制宏,看看图表对象的一些属性和方法。
步骤1 准备数据,如下图所示。
chartsample11
步骤2 单击“开发工具—录制宏”。
步骤3 将宏命名为BuildSalesChart,如下图所示。
chartsample12
步骤4 单击“确定”,开始录制宏。
步骤5 选择单元格A1:E7,如下图所示。
chartsample13
步骤6 单击“插入—柱形图”,在“三维柱形图”中选择最左边的图表类型,如下图所示。
chartsample14
步骤7 停止宏录制器。
此时,在工作表中插入了新图表,如下图所示。注意,Excel选择了与每个图表元素相关的数据区域(图例、值和水平轴标签)。
chartsample15
上面的图表将销售额按月分组,帮助我们看到哪类产品在该月销售最好。
除了插入图表外,Excel同时添加了上下文功能区。上下文功能区提供了与当前所选对象相关的命令。下图显示了“图表工具”上下文功能区,包含三个功能区:设计、布局、格式。
chartsample16
Excel默认的图表操作是按列显示数据值(本例中按产品)。垂直轴和水平轴可能不会按你期望的方向显示数据,假设本例就是这种情形。下面,让我们再录制一个宏,看看Excel切换图表数据方向从列到行的命令应用。
步骤1 在“开发工具”选项卡中,单击“录制宏”。
步骤2 将宏命名为“ChartByRow”。
步骤3 单击图表内任意位置选择图表。
步骤4 从“图表工具”中选择“设计”选项卡。
步骤5 从“设计”选项卡的“数据”组中,选择“切换行/列”命令,如下图所示。
chartsample17
步骤6 停止宏录制器。
图表现在应该如下图所示。
chartsample18
上面的图表能够很方便地查看每种产品的销售趋势。
查看代码
让我们看看到目前为止生成的宏代码。BuildSalesChart宏使用选择的数据区域创建了一个三维柱状图表。ChartByRow宏切换默认的图表数据方向,由列切换为行。

Sub BuildSalesChart()
'
' BuildSalesChart Macro
'

'
    Range("A1:E7").Select
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.SetSourceData Source:=Range("'每月销售数据'!$A$1:$E$7")
    ActiveChart.ChartType = xl3DColumnClustered
End 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").Select
    ActiveSheet.Shapes.AddChart(xl3DColumnClustered).Select
    ActiveChart.SetSourceData Source:=Range("'每月销售数据'!$A$1:$E$7")
End Sub

表:xlCharType枚举值
xlcharttype1
xlcharttype2
xlcharttype3
下面,再来看看ChartByRow宏中切换图表数据方向的代码:

Sub ChartByRow()
'
' ChartByRow Macro
'

'
    ActiveSheet.ChartObjects("图表 3").Activate
    ActiveChart.PlotBy = xlRows
End Sub

代码总共只有2行。第1行代码调用ChartObjects.Activate方法来激活名为“图表 3”的图表。ChartObject对象代表在工作表中嵌入的图表,ChartObjects对象包含在图表工作表、对话框工作表、或工作表中所有ChartObject对象的集合
ActiveChart.PlotBy属性设置或返回xlRowCol枚举的值。下表列出了xlRowCol枚举项的值。
表:xlRowCol枚举

名称
xlRows 1
xlColumns 2

相关文章

  • 2009年12月1日 -- Excel图表编程应用大全(2):图表编程基础 (2)
    嵌入式图表和图表工作表 图表在工作表中有两种存在方式: 嵌入式图表与工作表的数据在一起,或者与其他的嵌入式图表在一起。 图表工作表是特定的工作表,只包含单独的图表。 (1)嵌入式图表 当希望图表作为工作表的一部分,与数据或其他图表在一起时,嵌入式图表是最好的选择。Chart对象代表每一个嵌入式图表,包含在ChartObject对象里。 每个Excel工作表都有一个ChartObj...
  • 2011年04月15日 -- Excel图表编程应用大全(3):示例-使用饼图汇总 (0)
    引言:本文来源于《Pro Excel 2007 VBA》的第5章,辑录于此,供学习图表编程参考。 如下图所示的示例工作表,列表中分别为产品、月份、销售量。 这份数据为我们在饼图中显示每个类别提供了相当好的格式,按月查看每个产品线整体销量情况。在开始为这类数据制作图表之前,最好先按正确的顺序将数据排序,使选择图表更容易。 1、将活动单元格位于数据表的任意位置。 2、在“数据”选...
  • 2009年08月14日 -- 在VBA中使用R1C1样式的公式 (0)
    通常,在Excel中采用的A1样式引用单元格,即行号为数字列号为字母。其实,Excel也支持R1C1样式的引用方式,并且这种引用方式在公式中是非常高效的,特别是在VBA中编写公式进行数据处理时。 下面,我们举一个例子,即在VBA中使用R1C1样式的公式建立乘法表。在工作表单元格区域B1:K1中输入数字1至10,在A2:A11中也输入数字1至10,然后在单元格区域B2:K11中获得单元格所在...
  • 2009年11月16日 -- 修改数据透视表 (2)
    下面,我们来修改在《创建数据透视表》中创建的保险数据透视表。你将会看到当源表中的数据改变时会发生什么,学习如何查看不同类型的数值汇总,还将使用内置的格式功能来修改数据透视表的外观。最后,如果不再需要数据透视表,可以删除它。 改变数据透视表 有时,你会创建数据透视表并且让它保持相同的布局且无须修改字段。每周或每月,你将更新数据,基于数据透视表汇总来查看结果或者分发报表。然而,有一些数据透视...
  • 2011年03月14日 -- Array函数 (0)
    可以使用Array函数给数组批量赋值,例如: myArray = Array(1, 2, 3, 4, 5) 语法 Array(元素1,元素2,…,元素n) 其中 元素是赋给数组元素的数据,可为任意的数据类型。 其返回值为由传递给函数的参数组成的变体型数组。 例如: Dim varMyArray varMyArray = Array("张三", "李四", "王五", "赵六...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章