王志军
在职场实践中,利用VBA代码可以大大提高Word操作效率,这里举几个例子以作说明。
批量替换文档第一行为文件名
最近在工作中遇到一个问题,领导要求将某些Word文档的第一行修改为文件名,如果纯手工修改,操作将相当繁琐。思考之后,决定利用VBA代码解决这一问题。
新建Word文档,按下“Alt+F11”组合键,打开Microsoft Visual Basic for Applications编辑器窗口,依次选择“插入/模块”,在右侧窗格插入一个空白模块(如图1),手工输入或粘贴如下代码(相关代码请关注电脑迷微信回复1504vba1获取)。
上述代码的“.Filters.Add "所有 WORD 文件", "*.doc", 1”表示文件扩展名为.doc,“.AllowMultiSelect = True”表示允许多项选择,检查无误之后,依次选择“文件/关闭并返回到Microsoft Word”命令,返回Word主界面。按下“Alt+F8”组合键,打开“宏”对话框,选择并运行Example宏,此时会弹出“浏览”对话框(如图2),选择需要处理的Word文档,确认之后稍等片刻即可将这些文档的第一行批量修改为文件名。
补充:Word文档的首行必须不是空行,而且不是段落,否则上述代码将无法实现。
利用VBA代码快速标示英文单词
同事前来求助,他有一个Word版本的英文文章、一个TXT版本的单词列表,希望借助VBA,将TXT文本中的单词在Word文档中标示出来,并使用醒目的红色进行标记,TXT文本中不存在的单词可以在Word文档自然忽略,该如何操作呢?
首先请将Word文档与TXT文本放在同一文件夹下,而且TXT文本中的每个单词需要单独列行。打开Word,载入英文文章,按下“Alt+F11”组合键,打开Microsoft Visual Basic for Applications编辑器窗口,依次选择“插入/模块”,在右侧窗格插入一个空白模块(如图3),手工输入或粘贴如下代码(相关代码请关注电脑迷微信回复1504vba2获取)。
上述代码中的“list.txt”必须与TXT文件名保持一致,如果希望标示为其他的颜色,只需更改“wdColorRed”即可。检查无误之后,按下“Alt+F8”组合键,打开“宏”对话框,选择并运行宏,很快就可以看到效果(如图4)。
如果不想使用VBA代码,也可以使用360软件管家下载“Word灵感百宝箱”,使用其中的“字符上下标设置”功能设置,注意操作时请取消“替换时打开修订功能”即可。
利用VBA代码逐页打印
输出图片文件
最近在工作中遇到一个问题,出于防复制的需要,领导希望将某些重要的Word文档逐页打印为单独的图片文件,这自然是使用内置的虚拟打印机Microsoft XPS Document Writer实现,文件名使用“当前页面+当前文件名”的规则,除了手工打印之外,有没有简单一些的方法呢?
我们可以利用VBA代码实现,打开需要逐页打印输出图片文件的Word文档,按下“Alt+F11”组合键,打开Microsoft Visual Basic for Applications编辑器窗口,依次选择“插入/模块”,在右侧窗格插入一个空白模块,手工输入或粘贴如下代码(相关代码请关注电脑迷微信回复1504vba3获取)(如图5)。
上述代码中的“e:\Temp\temp4\”表示文件的输出路径,可以根据实际情况自行调整。检查无误之后,选择“文件/关闭并返回到Microsoft Word”命令,返回Word主界面,按下“Alt+F8”组合键,打开“宏”对话框,选择并运行宏,此时Word会逐页打印输出,稍等片刻,我们就可以在指定位置发现已输出的图片文件(如图6)。