word利用VBA实现大批论文格式整理
为实现统一汇报格式和统一存档,学院要对某专业的几十份Word论文电子文档统一修改正文的字号、行距。如何实现? 按照传统的方法,我们只能一一打开Word文档,按规定的格式对标题和段落进行格式化处理。这样做显然效率太低。如果使用VBA录制宏,给Word加入多文件处理相关的代码,便可实现对同一目录中的Word文件进行自动整理。本文以Word 2010为例。 一、录制格式替换的宏 1. 打开Word程序,按Ctrl+H,调出“查找和替换”对话框,点击“更多”,勾选“使用通配符”; 2. 在“查找内容”中输入*(意思为任何内容),点击“格式”,选“样式”,在“查找样式”中选“正文”(图1);
3. 在“替换为”中输入^&(意思为查找到的内容),点击“格式”,选“字体”,在此设置新的字号,如5号字(图2);
4. 点击“格式”,选“段落”,设置好新的行距,例如1.5倍行距(图3);
5. 不要关闭对话框,点击Word主窗口中的“视图”选项卡,点“宏”按钮下的三角形按钮,选“录制宏”,点击“确定”(图4);
6. 点击“查找和替换”对话框中的“全部替换”,点击“确定”; 7. 点“宏”按钮下的三角形按钮,选“停止录制”。 二、加入多文件处理 1. 点“宏”按钮,选择刚录制的宏(如宏1),点击“编辑”; 2. 在第一行“Sub 宏1()”后,加入代码如下: Application.ScreenUpdating = False Dim myPas As String, myPath As String, i As Integer, myDoc As Document With Application.FileDialog(msoFileDialogFolderPicker) .Title = "选择目标文件夹" If .Show = -1 Then myPath = .SelectedItems(1) Else Exit Sub End If End With myPas = InputBox("请输入打开密码:") Set fso = CreateObject("Scripting.FileSystemObject") Set oFolder = fso.GetFolder(myPath) Dim oSubFolder, oFile For Each oFile In oFolder.Files Set myDoc = Documents.Open(FileName:=oFile.Path, Passworddocument:=myPas) 3. 在最后一行End Sub前加入代码如下: myDoc.Save myDoc.Close Set myDoc = Nothing Next Application.ScreenUpdating = True 三、运行程序 按F5键,运行程序,选择Word文件所在文件夹,点击“确定”,若没有打开密码,就直接点击“确定”。 (注:使用时,不能打开要整理的文件)。 |