PDF快速转换Word,教你5分钟完成1000个PDF的转换!
日常的办公中,偶尔有Word文档转换pdf的需求。Word和WPS都有另存文档为PDF格式文件的功能。
一两个的话,手动另存为PDF还可接受,但是如果需要批量转换几百个文档,这个时候手动做就很费时间了。网上也有很多在线转换的插件,很多需要开会员。
这时候,不要忘了还有VBA。
多搜集代码,代码三五行,工作不用忙断肠。
▎代码
Word本身有这个功能,我们先来录制宏获取一下核心代码。
Sub test()
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
"C:\Users\love ss\Desktop\打印pdf.pdf", ExportFormat:=wdExportFormatPDF
End Sub
如果要改成批量转换,我们就要加上必要的循环,并且要对路径做修改,改成活的。
下面是全部的代码及效果,转换之后,我这里默认把转换后的pdf放在了桌面上。
Sub 批量转换文档为PDF()
'选择多个文件
Dim l As Long
Dim doc As Document
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True '多选择
.Filters.Clear '清除文件过滤器
.Filters.Add "Word Files", "*.doc;*.docx" '文件类型过滤器,这里只选择后缀是doc或者docx类型的文件
.Show
'FileDialog 对象的 Show 方法显示对话框,并且返回 -1(如果您按 OK)和 0(如果您按 Cancel)。
For l = 1 To .SelectedItems.Count
Set doc = Documents.Open(.SelectedItems(l))
doc.ExportAsFixedFormat OutputFileName:= _
Environ("userprofile") & "\Desktop\" & GetFileInfo(.SelectedItems(l), 2) & ".pdf", ExportFormat:=wdExportFormatPDF
doc.Close False
Next
End With
End Sub
Function GetFileInfo(Fullpath, InfoIndex)
'从文件带路径的字符串中拆分,获得文件名
Set oFSO = CreateObject("Scripting.FileSystemObject")
Select Case InfoIndex
Case 1
Set oFile = oFSO.GetFile(Fullpath)
GetFileInfo = oFile.Name '文件名带后缀
Case 2
GetFileInfo = oFSO.getbasename(Fullpath) '纯文件名
Case 3
GetFileInfo = "." & oFSO.GetExtensionName(Fullpath) '文件扩展名
End Select
End Function
▎代码解析
如果你有一个文件的全路径,想从这个路径中获取文件名、文件扩展名、或者文件名+后缀。那么可以用下面这个自定义函数。
Function GetFileInfo(Fullpath, InfoIndex)
'从文件带路径的字符串中拆分,获得文件名
Set oFSO = CreateObject("Scripting.FileSystemObject")
Select Case InfoIndex
Case 1
Set oFile = oFSO.GetFile(Fullpath)
GetFileInfo = oFile.Name '文件名带后缀
Case 2
GetFileInfo = oFSO.getbasename(Fullpath) '纯文件名
Case 3
GetFileInfo = "." & oFSO.GetExtensionName(Fullpath) '文件扩展名
End Select
End Function