李小遐
摘要:Excel电子表格软件是应用最广泛的软件之一,它的数据处理、图表功能及各种函数和工具深受广大用户的喜爱,通过使用Excel宏,不仅能使Excel的很多操作自动化,更能通过VBA编程对Excel进行二次开发,实现很多高级功能,提高工作效率。
关键词:宏;Excel 2010;VBA
中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2014)07-1537-03
1 宏的概念
1.1 宏
宏(Macro)是微软公司为其OFFICE软件包设计的一个特殊功能,设计者为了让人们在使用软件进行工作时,避免一再地重复相同的动作而设计出来的一种工具,它利用简单的语法,把常用的动作写成宏,当在工作时,就可以直接利用事先编好的宏自动运行,去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中的一些任务自动化。例如,在Excel打印输出时,纸张大小默认设置为A4,如果经常需要将纸张大小设置为B5,则可将该操作录制为一个宏,在打印输出前执行该宏,即可快速设置纸张大小,节省操作时间。
宏是可用于自动执行任务的一项或一组操作,但其实质是由一系列VBA命令组成的程序。宏类似于计算机程序,但与其他用于软件开发的编程语言不同,宏只能“寄生”于Excel文件之中,而且宏代码不能编译为可执行文件。
1.2 VBA
VBA(Visual Basic for Application)是新一代宏语言,是基于Visual Basic发展起来的、支持面向对象的编程语言。由于它具有直接应用Office套件的各项强大功能,而且宏录制器可以将用户操作自动转换成VBA代码,因此VBA使Excel形成了独立的编程环境。
Excel VBA作为一种扩展工具,得到了越来越广泛的应用,原因在于,很多实际应用中复杂的Excel操作都可以利用VBA得到简化。一般来说,Excel VBA可以应用在如下几个方面:1)自动执行重复的操作;2)进行复杂的数据分析对比;3)生成报表和图表;4)个性化用户界面;5)Offic组件的协同工作;6)Excel二次开发。
2 创建宏
Excel提供了两种创建宏的方法,一种是利用Excel操作环境中的宏录制器录制用户的操作;另一种是使用VBA语言在VBE(Visual Basic Editor,VBA集成开发环境)中编写宏代码。
2.1录制宏
在Excel2010中,宏录制功能在“开发工具”选项卡中,这与早期的Excel版本有所不同。Excel2010的默认环境中,“开发工具”选项卡是隐藏的,因此在录制宏或编写宏之前,需要将“开发工具”选项卡显示出来,操作方法是点击“文件-选项-自定义功能区”,选中“开发工具”复选框,确定后即可在Excel窗口中看到“开发工具”选项卡。
利用“开发工具”选项卡中“代码”组中的“录制宏”按钮,在“录制新宏”对话框中,设置宏的名称、保存位置以及快捷键,再单击“确定”按钮,就可以开始宏录制,此时“录制宏”按钮状态变成了“停止制”,点击该按钮即可完成宏录制。为了使录制的宏有效,在宏录制时需要注意以下事项。
1)在录制宏之前,应先制定计划,确定宏要执行的步骤和命令。录制前最好先执行一次,确定每个步骤的详细操作过程,因为如果在录制宏时出现失误,改正失误的操作也会被Excel录制到宏中。
2)如果在录制宏时执行了选择单元格的操作,则每次运行该宏时都将选中对应的单元格,因为宏记录的是单元格的绝对引用。要让宏选择单元格时不考虑活动单元格的位置,可以点击“代码”组的“使用相对引用”按钮,将宏设置为记录单元格相对引用;再次点击该按钮,又将按绝对引用方式记录宏。用户在录制过程中可根据需要改变该按钮的状态。
3)宏保存时需要从“文件类型”中选择“Excel启用宏工作薄(*.xlsm)”类型来保存,否则录制的宏无效。
宏录制过程中,用户进行的相关Excel 的操作大部分将被自动记录为宏代码,单击“代码”组中的“Visual Basic编辑器”按钮或按
2.2 使用VBE创建宏
录制的宏可以忠诚地记录Excel 操作,但也有其本身的局限性,如录制的宏无判断或循环能力,只能简单执行,无人机交互能力。因此,对于很多无法录制的复杂操作,如创建新的窗体等,在VBE中使用VBA代码创建宏是唯一的方法。在创建宏之后,可以将宏分配给对象,如按鈕、图形、控件和快捷键等,这样执行宏就像点击按钮或快捷键一样简单。
VBA的语言要素非常多,不论是使用VBA代码创建宏,还是修改录制宏时产生的代码都需要具备一定VBA或VB编程基础的用户才能完成。在此仅通过一个应用实例说明用VBA编程解决问题的思路。
实现功能:合同到期自动提醒。问题描述:Excel工作表中有100多名合同客户信息,A列为姓名,B列为合同起始日期,C列为合同到期日期,要求在打开工作表的同时自动给出提示,每个合同到期前15天内,每天都要有提示。
这是一个打开工作薄即自动运行宏的问题,用录制宏是无法完成的,必须在VBE环境中用VBA直接编写宏代码来解决,可以设置一个自动运行的宏,名称为Auto_Open,则每次打开包含此宏的工作薄时,宏代码会在后台自动运行,给出提示对话框。用VBA编写的宏代码如下,打开VBE窗口,在模块1的代码窗体里输入这段代码后,保存工作薄为“Excel启用宏工作薄(*.xlsm)”类型,再次打开此工作薄时会自动弹出一个个对话框,显示某某客户的合同还有多少天到期,请尽快续约的提示信息。
3 宏的安全性
宏是由VBA代码组成的。从Office软件支持宏开始,宏病毒也随之出现,许多病毒经过专门设计,可以利用VBA宏对系统和数据文件进行恶意操作,宏的安全性越来越受到用户的重视。在Excel2010中,用户可以选择宏安全设置,以便控制打开包含宏的工作薄时的行为,能够在大部分情况下杜绝宏病毒对工作薄造成的危害。
3.1 宏安全性设置
要设置宏的安全性,用户可以通过点击“开发工具”选项卡中“代码”组里的“宏安全性”,在打开的“信任中心”对话框的“宏设置”来设置宏启用时的状态。默认情况下,宏是被禁止的,启用时会发出通知,用户需要选择启动内容才可以运行宏。
3.2 数字签名
宏更安全的设置方法是数字签名,就是给宏加上电子的基于加密的安全验证戳,以确认宏是来自签名者并且没有被篡改。Excel2010的数字签名有商用类型和个人类型两种类型,商用类型需要付费,对一般用户来说,个人数字签名就已经比较安全。
在Office的安装目录中有一个名为“SELFCERT.EXE”的应用程序,运行这个程序就可以生成用户的数字签名。具体操作步骤为:第一步,在Windows7系统中,点击“开始—运行”命令,在“运行”对话框中点击“浏览”按钮,在Office的安装文件夹中的“Office14”文件夹中找到“SELFCERT.EXE”程序运行,在打开的“创建数字证书”对话框中输入证书的名称;第二步,在VBE窗口,点击“工具—数字签字—选择证书”,选择在第一步输入的数字证书;第三步,在宏安全设置中,选择禁用无数字签置的所有宏。
4 结论
如果在Excel中重复进行某项工作,可用宏使其自动执行。相对宏录制,在Excel中使用VBA,可以更好地控制Excel,进一步发掘Excel的强大功能,提高Excel的自动化水平。VBA不仅仅应用在微软的应用程序中,在AutoCAD、CorelDRAW等应用程序的新版本中也集成了,作为应用程序自动化语言,VBA在各组件中是通用的。
参考文献:
[1] 伍云辉.精通Excel VBA[M].北京:電子工业出版社,2013.
[2] 罗刚军.Excel2010VBA编程与实践[M].北京:电子工业出版社,2010.
[3] 陈军民.Excel VBA在Office中的应用案例[J].电脑知识与技术,2013.
[4] 方文英. Excel宏编程的应用[J].办公自动化,2008(7).
[5] 王燕.VBA在办公中的编程应用[J].福建电脑,2013(4).