Word文档批量转换为PDF的方法
- 格式:docx
- 大小:242.24 KB
- 文档页数:4
Word文档批量转换为PDF的方法
平时工作中,经常需要将大量的Word文档转换为PDF,单个转换费时费力,经摸索终于实现一个文件夹内的所有Word文档一次性快速转换的方法,瞬间减轻了工作量,共享如下。(有关Excel文档批量转换的方法后续继续共享,敬请期待。)
建一个xlsm格式的宏工作簿,将以下代码粘贴到标准模块中即可使用。
'************************************************
'author:杨开科
'date:2017-11-8
'function:将目标文件夹中的全部Word文档转换为PDF
'Remark:须安装SaveAsPDF,可问度娘要
'************************************************
Function pth(ykk As String) As String
'确定目录
With
Application.FileDialog(msoFileDialogFolderPicker)
.Title = ykk
If .Show = -1 Then
pth = .SelectedItems(1)
Else
Exit Function '没选择目录,退出
End If
End With '完成确定目录
End Function
Sub WordToPDF()
Dim mypath As String, dest$, mydoc
As Document, temp$
Dim myFile$, myname$, wdApp As
Word.Application
'----------------------------------------------------------
mypath = pth('请选择待转换文件所在文件夹')
dest = pth('请选择目标文件存放目录')
If mypath = '' Then
Exit Sub
End If
If dest = '' Then
dest = mypath
End If
'----------------------------------------------------------
myFile = '*.doc*' '设定文件类型
myname = Dir(mypath & '\' &
myFile) '取带路径和扩展名的文件名
Set wdApp = New
Word.Application 'New一个Word对象
Do Until myname = '' '建立一个循环
'打开待转换的Word文档赋给对象变量
Set mydoc =
wdApp.Documents.Open(mypath & '\' &
myname, ReadOnly:=True) '取出不带扩展名的文件名
temp = VBA.Left(myname,
InStrRev(myname, '.') - 1)
Application.StatusBar = '请稍候,正在转换:' & temp '状态栏提示
'转换,各参数的含义可F1
mydoc.ExportAsFixedFormat
OutputFileName:=dest & '\' & temp &
'.pdf', _
ExportFormat:=wdExportFormatPDF,
OpenAfterExport:=False, _
OptimizeFor:=wdExportOptimizeForPrint, _
Range:=wdExportAllDocument,
From:=1, To:=1, _
Item:=wdExportDocumentContent, _
IncludeDocProps:=True,
KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, _
DocStructureTags:=True, _
BitmapMissingFonts:=True,
UseISO19005_1:=False
mydoc.Close False '关闭已转换完成的Word文档
myname = Dir '下一个文档
Loop
Application.StatusBar = '' '置空状态栏 MsgBox 'Word文档已全部转换为PDF文档', 64, 'OK'
Set wdApp = Nothing
End Sub
代码的排版好像不太规整,以下为源码截图: