讳莫如深的Word“宏”
2009-05-28刘淑娟
刘淑娟
一、长在深闺人初识——什么是宏
“宏是定制的命令,能帮助您更快、更有效地工作。一般来说,宏由一系列Word命令和动作组成,执行宏时,将这些命令或动作激活。”这是MSWORD对“宏”的定义。所谓“宏”,就是一些命令的组合,和DOS的批处理文件(BAT)没有什么不同。想要清楚的了解“宏”这个概念,必须掌握以下几点:
1.“宏”像Word其它操作一样,也是一条可执行的命令,不过这条命令可以执行多条单个的命令,是命令的批处理。
2.每一个“宏”都对应一段代码,这段代码可以由用户直接用鼠标点击或键盘操作生成(代码是由Word自动生成的);也可以在Word内建的Visual Basic编辑器中直接书写代码生成。
3.“宏”通过宏名来区分,一个文档或文档模板中,可能有一个或多个“宏”,通过点击相应的按钮或按下键盘快捷键来执行。如不执行,即使文档有“宏”,它也“躲”在暗处一动不动。
4.“宏”可生成,当然也可以删除。
5.“宏”是可重复执行的代码,可一次创建,多次使用。
二、牛刀小试——做一个简单的宏
办公室文员经常会碰到各种各样的“通知”,对“通知”两字的排版多采用固定的格式,下面就“通知”两字的格式编排做一个宏,并将其保存在Word通用模板中,若以后碰到“通知”,就不必编排,直接执行该宏就可以了。具体步骤如下:
1.启动Word 2000,点“工具”—“宏”—“录制新宏”。
2.输入宏名(如tongzhi),宏名不能是汉字,只能是26个英文字母以及0~9数字,不区分大小写。
3.选择将宏保存在何处,即该宏是只对该文档有用,还是对所有文档都有用。
4.选择将宏指定到键盘还是工具栏某个按钮,即将来如何来启动、使用该宏。若是选择指定到键盘,接下来,就要按下启动该宏的键(多数采用组合键),并按下“指定”按钮以确认,最后点击“关闭”。若是选择指定到工具栏,则在接下来的对话框中,将代表该宏的按钮拖至将要摆放的位置点击“关闭”。屏幕上出现开始录制宏的小窗口,并有两个按钮,一个是停止录宏的(结束宏录制操作),一个是暂停录制的(用以暂停录制,去做其它事情,可继续)。
5.对宏进行编排。点击“停止录宏”按钮,程序将自动记录操作,并将其保存。这样一个简单的宏就录制成功了。
6.测试宏是否有效。输入几个字,而后选中它们,按下刚才设置的快捷键(或按钮),可以看到选中的那几个字的格式改变了,不信还可以多试几次。
三、一展身手——宏的应用
了解了宏的基本概念,知道了一个宏的制作过程,也知道宏代码是怎么回事,下面就可以将宏应用到实际工作中。但宏是博大精深的,差不多所有Word操作都可以记录到宏里,让其自动执行。了解Word庞大的操作对象,需要在实际工作中不断使用、积累才可以得心应手。而且,宏对应的是Visual Basic代码,想要非常熟悉地应用宏,让Word插上腾飞的翅膀,熟悉一些VB的基础知识也是很有必要的。下面用几个例子,进一步说明宏的应用。
1.唾手可得的工具条——用宏改变Word界面
Word工具栏是动态的,可以随意增减。对屏幕视图的修改可以录制入宏,以方便用户迅速改变视图方式。屏幕面积是有限的,若是将所有的工具都显示出来,那么用以编辑的区域就很小。因此,当需要较大的编辑区域时,可以将这些暂时不用的工具条关闭。
有些操作,通常用得不是很多,当需要时再去找它却是很麻烦(如“公式编辑器”的使用),可以在Word工具栏添加一个按钮,当需要时,直接点击按钮就可以打开“公式编辑器”进行公式编辑。
例如,收起常用的工具条(常用、格式、绘图等),需要时再全部打开。用Ctrl+Shift+O来打开工具条。而用Ctrl+Shift+E来关闭这些工具条,以下是具体的操作步骤:
(1)点“视图”—“工具栏”,如果屏幕上“常用”“格式”、“绘图”等工具栏已经看到,则先将这些工具栏关闭。
(2)录制两个宏,一个名为OpenTools,用Ctrl+Shift+O作快捷键,将宏保存在所有文档。开始录制,将刚才关闭的几个工具条再从“视图”中打开,停止录制。另一个宏名为CloseTools,用Ctrl+Shift+E作快捷键,依上方法,将工具栏关闭。
2.世界是懒人创造的——简化办公方案
(1)将“页面设置”录制成宏。根据家庭或单位的打印机的不同,以及所用的打印纸的不同,对文档的输出要求的不同等,每次编辑完一篇文档后,都需要对页面格式进行设置,为达到最佳效果,不得不反复调整。若将最佳的设置录制入宏,并将其像“常用”工具那样生成一个按钮,放置在工具条上。这样,下一次使用就方便多了。
(2)对于固定格式的信件、公函等,先将其分解成几个部分,而后对每一部分进行编排,并录制成宏。如前所说的“通知”,可将其分为三部分:标题、正文、落款,并将其格式分别录制成宏。这样,以后若遇到通知,尽可以只录入内容。校对后,执行这三个宏就可以了。
3.看不见的教师——自动评分
作为一名计算机教师,经常要判断(批改)学生所做的Word操作题是否正确,对于几十甚至上百的学生排版作业,若要一一批改,就相当耗时。如果用宏,就可以把对学生操作的评判标准,预先录制入宏。随着文档一起下发给学生,待学生做好后,直接执行宏——这个看不见的教师可以将学生成绩瞬间搞定。
这是用代码去编写宏,而不像上面用鼠标点点就能解决问题的。下面是对文档格式(字体、段落)编排评判的主要程序。
操作要求:对当前文档第二段进行编排。
字体:楷体;字号:小三;字色:红色;粗体;下划双线;字间距为4磅;(6小题,共4分)段前12磅,段后3磅;行距为固定值:20磅;首行缩进0.75厘米;左右各缩进1.8厘米;段落居中(8小题,共6分)。
Sub pg()
Dim vala, valb As Single'累计字体得分值vala,累计段落分值valb
Dim strmsg As String'显示学生做错位置
Static a, b As Integer
a=0'初始化变量
b=0
strmsg=""
strmsg="出错位置:"+vbCrLf
'选中当前活动文档的第2段文字
ActiveDocument.Paragraphs(2).Range.Select
'字体格式批改
With Selection.Font
'如果字体名是楷体,累计分值,否则标记字体出错
If.Name="楷体_GB2312" Then
a=a+1
Else
strmsg=strmsg+"字体"
End If
'如果字号是15,累计分值,否则标记字号出错
If.Size=15Then
a=a+1
Else
strmsg=strmsg+"字号"
End If
……
End With
'算出字体格式设置的得分。Int()用以取整,a是做对的小题量,6是总题量,4为字体格式设置的总分值,用乘以100,再除以100,使得最终取值保留两位小数。
vala=Int(a/6*4*100)/100
'段落格式批改
With Selection.ParagraphFormat
'如果段后间距为3,累计分值,否则标记段后出错
If.SpaceAfter=3Then
b=b+1
Else
strmsg=strmsg+"段后"
End If
……
End With
'算出字体格式设置的得分。Int()用以取整,b是做对的小题量,8是总题量,6为段落格式设置的总分值,用乘以100,再除以100,使得最终取值保留两位小数。
valb=Int(b/8*6*100)/100
'以下通过Msgbox将成绩输出
Dim strtemp As String
strtemp="本题应得分:"
strtemp=strtemp+Str(10)+vbCrLf
strtemp=strtemp+"本题实际得分:"
strtemp=strtemp+Str(vala+valb)+vbCrLf
'如果没有错误,则不显示出错信息;否则将strmsg加入strtemp中,以显示出错位置
If Len(strmsg) > 10 Then
strtemp=strtemp+strmsg
End If
MsgBox strtemp, vbOKOnly,"分值显示:"
End Sub
执行以上宏后,出现如右上图所示的对话框,学生成绩、出错位置一目了然。最后,对自动评分作以下两点补充说明:
(1)预先将Word文档的操作要求,按一定的格式录入数据库。评分时再由数据库读出操作要求,进行自动评分。这样,利于代码的反复使用,当操作要求发生变化时,只要修改数据库的内容就行了,而不必去考虑修改自动评分的代码。
(2)自动评分代码与操作要求相互联系,又自成体系,加上错误处理等代码,就可以设计出Word无纸化考试程序。只是代码相对复杂一些,有一定的VB基础的读者不妨一试。[e]
(江苏省溧阳市职业教育中心 213300)