当前位置:主页 > Office办公 > Excel图表自动化

Excel图表自动化

Excel图表的自动化 Excel批量生成图表
Excel图表的自动化 Excel批量生成图表

有时我们需要根据数据的不同分类动态生成多个图表,这些图表具有一致的外观,唯一不同的仅仅是图表系列所引用的数据为不同单元格区域,使用手工一个一个去生成,或是通过复制修改的方法来获得这些图表不仅费时费力,而且容易出错,使用VBA来完成无疑是一个简单高效的方法。程序代码6.4-2所示是一个根据不同产品动态生成图表的案例,这个案例绝大部分代码的编写也是基于录制宏,尤其是图表格式设置部分。程序代码:6.4-2 VBA批量生成图表该程序实现了根据产品名称动态生成图表,并格式化的功能,同时该代码不受产品所占单元格数量多寡影响。如图6.4-2所示为单击“动态生成图表”按钮后所生成的5个不同产品的销售状况柱形图表。图6.4-2 VBA动态批量生成图表效果

Excel图表的自动化[以逸待劳]
Excel图表的自动化[以逸待劳]

虽然Excel图表功能具有非常灵活的高度自定义设置,但也存在诸多问题:其实,所有这些都可以通过使用VBA编程的自动化来解决。VBA是基于VB(Microsoft Visual Basic)的编程语言,其实这个编程语言学习起来远比其他任意一个编程语言简单,而且Excel提供了非常好的学习工具:录制宏,通过该工具我们可以快速构建属于自己的自动化宏过程。当然要将这个工具掌握到得心应手的地步,我们需要大量的学习和实践,有关该部分更为具体的内容请参阅讲解Excel VBA的书籍。提示这个部分的内容要求读者电脑上必须安装了Visual Basic for Applications。如果没有安装请参考以下微软官方的说明:http://msdn.microsoft.com/zh-cn/library/0s58cy7h(v=vs.90).aspx录制宏功能按钮路径在:Excel 2003工具>宏>;Excel 2007/2010“开发工具”选项卡(如图6.4-1所示)>代码>录制宏。Excel 2003也可使用“Visual Basic”工具栏,Excel 2007/2010若没有“开发工具”选项卡,需在Excel 2007文件>Excel选项>常规>使用Excel时采用的首选项中,选中“在功能区中显示“开发工具”选项卡”;在Excel 2010中,文件>选项>自定义功能区中选中“开发工具”。图6.4-1 Excel 2010开发工具选项卡

295 次浏览
Excel图表的自动化 Excel整理图表系列边框及标签位置
Excel图表的自动化 Excel整理图表系列边框及标签位置

有时,有些图表的制作过程并不复杂,但格式化图表则需要大量的时间,这样的工作不但费时费力,枯燥且毫无乐趣可言。通过录制一小段宏,修改为制图的小帮手,不但充满乐趣,而且会使我们很有成就感,何乐而不为?程序代码6.4-3即是这样的一个例子。程序代码:6.4-3 VBA整理图表系列边框及标签位置单击“整理系列”按钮后的效果如图6.4-3所示,该节点图由48个堆积条形图和2个XY散点图系列构成,由于考虑到本书叙述的结构性问题,该图表的具*作本节不进行深入的讲解,请对此有兴趣的读者根据数据和图表进行学习。图6.4-3 VBA整理节点图系列边框和系列标签示例文档本书所附案例文档6.4为本节所述案例的具体实现。案例中包含了本节所述的所有VBA代码,读者可参照案例文档进行演练学习。

349 次浏览
Excel图表的自动化:数值刻度的最大/最小值设定
Excel图表的自动化:数值刻度的最大/最小值设定

无论版本,Excel图表均默认提供了自动设置的数值轴刻度,但遗憾的是并未提供类似图表系列数据源的单元格引用功能。有些时候我们制作的图表往往需要手动来设置刻度的最大/最小值,这些手动设置的数值在图表系列引用的数据源数据变化后,大多数情况下必须要再次更改最大/最小值设定,这是一件非常烦琐的事。如何使数值轴刻度的最大/最小值设定和单元格关联,便成为一个非常有价值的问题,解决这个问题的答案便是VBA。图6.1-1的案例中分割布局的辅助系列使用了数值1,并设置在了次数值纵轴,采用百分比堆积柱状图。如果不设置次数值纵轴,并使用簇状柱形图,则该辅助系列的引用数值就必须始终是主数值纵轴的当前最大值。面临的挑战首先是如何动态获得主数值纵轴的当前最大值;其次由于辅助系列的引用数值变化,主数值纵轴的当前最大值亦会自动发生变化;最后是这个主数值纵轴的刻度设定必须在图表系列引用数值发生变化时动态变化,而非静态。单击“录制宏”按钮,选中分割布局的辅助系列引用的单元格数值区域,在编辑栏进行赋值,录得以下代码段,获取该段代码的目的是后续将图表刻度最大值赋值给单元格。程序代码:6.4-1a VBA动态图表刻度 录制宏 获取单元格赋值语句单击“录制宏”按钮,激活图表并选中图表主要数值刻度,在坐标轴格式中设定刻度最大单位为固定模式,录得以下代码段,获取该段代码的目的是后续将单元格赋值给图表刻度最大值,以及获得图表的名称。程序代码:6.4-1b VBA动态图表刻度 录制宏 设定图表主要数值刻度将上述两段录制宏整理为下列代码段,完成主代码。该代码段包括初始化代码段和主作用代码段两部分。程序代码:6.4-1c VBA动态图表刻度 整理录制宏

757 次浏览