使用 VBA 批量转换 Office 文档格式
Sub FormatConverter()
Set instance = Documents ' 实例对象: Word=Documents | Excel=Workbooks | PowerPoint=Presentations
Const fromExt = "doc" ' 原始格式扩展名
Const toId = 12 ' 目标格式ID: doc=0 | docx=12 | xls=56 | xlsx=51 | ppt=1 | pptx=24
Set dialog = Application.FileDialog(msoFileDialogFilePicker)
dialog.Filters.Add fromExt, "*." + fromExt, 1
dialog.Show
For Each item In dialog.SelectedItems
Set file = instance.Open(FileName:=item, ReadOnly:=True, Visible:=False)
file.SaveAs Left(item, InStrRev(item, ".") - 1), toId
file.Close
Next
End Sub
新建文件,新建宏,替换为以上代码,参照注释修改,按键盘
F5
运行。需要其他格式请参考
FileFormat
枚举(搜索关键词word format enum vba msdn
)。
Change Log
20210226
- 重构代码。
20180823
补充了适用于 Excel 的代码。
其他修改。
20180626
- 首个版本。