自动化
excel 如何建立自己的自动化图表模板
VBA是一般读者不愿过多接触和学习的内容,因为这个部分总是给人高深莫测之感。若要摆脱Excel图表制作中那些低效的大量重复作业,学习VBA宏代码就是一个必须要面对的问题。办公室人员可能需要每周、每月都重复制作相同类型的图表,虽然Excel提供了图表的自定义模板和工作簿模板,但有时直接使用这些方法只能减少部分重复作业,通过使用VBA则可以大大简化这样的操作,我们需要的仅仅是用鼠标轻轻点击一下相应按钮即可。我们是否对Excel图表制作中简单机械的重复工作痛恨不已?这些繁复的劳作不但消耗作图时间,而且会使我们对Excel图表制作的兴趣消耗殆尽。好了,如果这已经是一个必须要认真对待的问题,那么使用VBA来定制适合自己的工具集就变得再实用不过了。除了自己动手来编写相应的VBA宏代码,其实我们也可利用Excel自带的分析加载项来制作相应的图表。此外,借助使用第三方工具集也是一个非常不错的方法。注:虽然掌握VBA这个工具对于学习图表大有裨益,但并非必须。如果我们不打算对VBA进行更深入学习,本章的工具请直接拿来套用即可。建立自己的自动化图表模板:面对周报、月报、年报中如出一辙的图表,我们还在日复一日、年复一年重复着这种燃烧激情和岁月的作业吗?如果回答是肯定的,我们是否想过,并且尝试去使用更加高效的方法,来实现这些简单、重复、低效的工作?如果没有,请不要再犹豫,马上行动起来,建立属于自己的自动化图表模板吧!Excel提供了自定义图表模板和工作簿模板,这样的操作虽然可以简化作业,但是在某些方面,依然不能有效地解决问题。如图13.1-1案例图表是非常典型的帕累托图表,如果仅是更新图表的数据,来重复使用这个图表,每次都必须要面对如下问题:图13.1-1 需重复使用的帕累托图
Excel图表的自动化 Excel批量生成图表
有时我们需要根据数据的不同分类动态生成多个图表,这些图表具有一致的外观,唯一不同的仅仅是图表系列所引用的数据为不同单元格区域,使用手工一个一个去生成,或是通过复制修改的方法来获得这些图表不仅费时费力,而且容易出错,使用VBA来完成无疑是一个简单高效的方法。程序代码6.4-2所示是一个根据不同产品动态生成图表的案例,这个案例绝大部分代码的编写也是基于录制宏,尤其是图表格式设置部分。程序代码:6.4-2 VBA批量生成图表该程序实现了根据产品名称动态生成图表,并格式化的功能,同时该代码不受产品所占单元格数量多寡影响。如图6.4-2所示为单击“动态生成图表”按钮后所生成的5个不同产品的销售状况柱形图表。图6.4-2 VBA动态批量生成图表效果
excel 如何创建自己的自动化工具
经常要使用Excel来制作图表的读者可能常常会碰到:图表系列标签引用单元格,需要手工使用“=”分别和单元格建立关联,这样的工作如若频繁出现,会使人几近崩溃。笔者在本书第二部分的案例中大量提及这样的方法,所以有必要创建一个工具来使这个过程变得简单和高效,本节内容就是针对该应用的一个VBA宏代码实践。要创建一个基于Excel图表的VBA自动化功能扩展,核心代码段的部分也许并不复杂。录制宏:在图表中选中任意系列的任意数据点标签,使用“=”和对应单元格建立关联,可获得如下代码段:ActiveSheet.ChartObjects("图表1").ActivateActiveChart.SeriesCollection(1).Points(1).DataLabel.Text="=Sheet1!R5C7"简化一下上述代码,甚至只需一行即可。但这样的代码段并不能完成一个图表的自动化功能扩展,一个完整的小工具应该具备以下特点:1.良好的Excel版本兼容性要考虑到该工具可能被读者使用到Excel的各个已发行版本中,目前,至少要保证代码在Excel 2003/2007/2010上运行正常。2.容易被加载和卸载
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开发工具选项卡
Word 中如何自动化题注和图表目录
在写策划或者作业时,我们需要给图片或表格加上形如 [图1-1 XXX对比图] 的标题。很多同学都坚持采用手打的方法,一个一个数字去敲打,如下图:如果文章中的某个地方发生变动,或者要调整某个图表的位置,就会引发连锁反应——需要手动修改无数个图表标题。除此之外,当看到排版要求里写着「添加图表目录」的时候,没有应用题注的同学自然唉声叹气,愁得不知所措。当然,Word 在自动化上从来就没让我们失望过。不是我们的 Word 不够智能,而是你使用的姿势不正确。在 Word 中,我们不仅可以给图表添加可以自动变化的序号,还可以利用它们快速生成图表目录。下面,我就来为大家介绍 Word 的题注和图表目录的使用方法。题注是是指出现在图片下方的一段简短描述。使用 Word 的题注功能插入的题注,与手打题注相比,有以下几个好处: 选中图片或表格,点击「审阅 - 插入题注」,弹出题注窗口。在这里,我们可以修改题注的名称,创建和选择标签,选择题注位置,设置编号等。如下图:
Excel图表的自动化 Excel整理图表系列边框及标签位置
有时,有些图表的制作过程并不复杂,但格式化图表则需要大量的时间,这样的工作不但费时费力,枯燥且毫无乐趣可言。通过录制一小段宏,修改为制图的小帮手,不但充满乐趣,而且会使我们很有成就感,何乐而不为?程序代码6.4-3即是这样的一个例子。程序代码:6.4-3 VBA整理图表系列边框及标签位置单击“整理系列”按钮后的效果如图6.4-3所示,该节点图由48个堆积条形图和2个XY散点图系列构成,由于考虑到本书叙述的结构性问题,该图表的具体制作本节不进行深入的讲解,请对此有兴趣的读者根据数据和图表进行学习。图6.4-3 VBA整理节点图系列边框和系列标签示例文档本书所附案例文档6.4为本节所述案例的具体实现。案例中包含了本节所述的所有VBA代码,读者可参照案例文档进行演练学习。
Excel图表的自动化:数值刻度的最大/最小值设定
无论版本,Excel图表均默认提供了自动设置的数值轴刻度,但遗憾的是并未提供类似图表系列数据源的单元格引用功能。有些时候我们制作的图表往往需要手动来设置刻度的最大/最小值,这些手动设置的数值在图表系列引用的数据源数据变化后,大多数情况下必须要再次更改最大/最小值设定,这是一件非常烦琐的事。如何使数值轴刻度的最大/最小值设定和单元格关联,便成为一个非常有价值的问题,解决这个问题的答案便是VBA。图6.1-1的案例中分割布局的辅助系列使用了数值1,并设置在了次数值纵轴,采用百分比堆积柱状图。如果不设置次数值纵轴,并使用簇状柱形图,则该辅助系列的引用数值就必须始终是主数值纵轴的当前最大值。面临的挑战首先是如何动态获得主数值纵轴的当前最大值;其次由于辅助系列的引用数值变化,主数值纵轴的当前最大值亦会自动发生变化;最后是这个主数值纵轴的刻度设定必须在图表系列引用数值发生变化时动态变化,而非静态。单击“录制宏”按钮,选中分割布局的辅助系列引用的单元格数值区域,在编辑栏进行赋值,录得以下代码段,获取该段代码的目的是后续将图表刻度最大值赋值给单元格。程序代码:6.4-1a VBA动态图表刻度 录制宏 获取单元格赋值语句单击“录制宏”按钮,激活图表并选中图表主要数值刻度,在坐标轴格式中设定刻度最大单位为固定模式,录得以下代码段,获取该段代码的目的是后续将单元格赋值给图表刻度最大值,以及获得图表的名称。程序代码:6.4-1b VBA动态图表刻度 录制宏 设定图表主要数值刻度将上述两段录制宏整理为下列代码段,完成主代码。该代码段包括初始化代码段和主作用代码段两部分。程序代码:6.4-1c VBA动态图表刻度 整理录制宏