小试“宏”刀 杨爱因 1999年 第50期 34版   我是厂报的一名业余通讯员,自从办公室配备了微机后,我写作就不再动笔了。但单位上的微机还未联网,因此每次写完稿,都要重复以下操作步骤:   1.按工具栏“保存”按钮,在保存对话框打开后,指定保存位置“D:\稿件备份”,然后输入稿件文件名,按“保存”(即保存一份底稿);   2.打开“文件”菜单,按“另存为”,然后指定保存位置“A:\”,再一次输入相同的文件名后,按“保存”(即再保存一份到A盘,A盘送往单位宣传部并拷入微机稿件库,等候择优发表);   3.关闭此文档。   看了第39期CPCW网站的“掀起Word的宏盖头”后,灵机一动,既然自己有一定的VB语言基础,何不试试用“宏”来自动完成以上步骤。经过一番技术准备,我作出了如下的功能设计:   每次写作时打开一个名为“写作”的文档,在“写作”文档中写完稿件后,单击工具栏上的“写作结束”按钮启动宏,此时弹出一个对话框,只需在文本框中输入一次稿件文件名,再按“确定”键,宏就自动分别在文件夹“D:\稿件备份”和“A:\”中保存该文件,然后自动关闭“写作”文档;完成操作后,“写作”文档其实仍是一个空文档而没有任何内容,每次写作时可重复使用;“写作结束”宏按钮仅出现在打开的“写作”文档中。   设计完功能后,具体实现步骤如下:   1.首先启动Word97,新建一名为“写作”的空文档,并设置好页面;   2.单击“工具”/“宏”/“宏”,在“宏名”文本框处输入“写作结束”,“宏的位置”选当前的“写作”文档,单击“创建”(见^503401a^1);   3.在系统打开的“MVB编辑器”中(如^503401b^2)直接输入如下代码:   Dim message As String, title As String, default As String   Dim myvalue As String, co As String   Dim msg1 As String, msg2 As String, msg3 As String   co = Chr(13) + Chr(10)   msg1 = ″请输入文件名″   msg2 =″按“确定”键将文件归档并发送A盘″   msg3 =″按“取消”键返回当前的Word文档″   message = msg1 + co + msg2 + co + msg3   title = ″写作对话框″   default = ″临时文件名″   myvalue = InputBox(message, title, default)   If myvalue = ″″ Then End   ChangeFileOpenDirectory ″D:\稿件备份″   ActiveDocument.SaveAs FileName:=myvalue, FileFormat:=wdFormatDocument, _ LockComments:=False, Password:=″″, AddToRecentFiles:=True, WritePassword _ :=″″, ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _ SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCEletter:= _ False    ChangeFileOpenDirectory ″A:\″    ActiveDocument.SaveAs FileName:=myvalue, FileFormat:=wdFormatDocument, _ LockComments:=False, Password:=″″, AddToRecentFiles:=True, WritePassword _ :=″″, ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _ SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCEletter:= _ False   ActiveDocument.Close   输完后保存,这样就拥有了一个能简化操作的宏了。但为了使用方便,可把此宏指定到工具栏制作一个名为“写作结束”的按钮。如何将宏指定到工具栏请参见CPCW网站刊过的有关文章。顺便说一下,该宏是无法通过录制的方法得到的。   好了,这初尝“宏”果的滋味实在让人兴奋不已,以后我要做的事就是打开“写作”文档专心做文章,机械的扫尾工作就由电脑去做了。