admin管理员组文章数量:1605636
如图,在vba编辑窗口,选择“工具--》引用”
sub batchConvert2pdf()
'需要转换的word文档的个数
dim total as Integer
'定义文件名数组:数组的个数根据需要进行设置
Dim fns(total) As String
fns(0) = "d:\doc\1.docx"
'.....................
fns(total-1) = "d:\doc\n.docx"
'定义PDF文件名和Word文件名
Dim pdf, doc As String
'定义文件对象,用于file操作
Dim fso As New Scripting.FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
Dim i As Integer
For i = 0 To total-1
doc = fns(i)
pdf = changeExtension(doc,"pdf")
'如果pdf已经存在,进行下一个
If fso.FileExists(pdf) Then GoTo endflag
If fso.FileExists(doc) Then GoTo endflag
'打开Word
Documents.Open doc
On Error GoTo mflag
ActiveDocument.Convert
ActiveDocument.Save
mflag:
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
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
ActiveDocument.Save
ActiveDocument.Close
endflag: Next i
end sub
'改变扩展名
Function changeExtension(filename, ext)
Dim extension As String
extension = IIf((Mid(ext, 1, 1) = "."), Mid(ext, 2), ext)
Dim loc As Integer
loc = InStrRev(filename, "\")
Dim dotloc As Integer
dotloc = InStr(loc, filename, ".")
Dim flen As Integer
flen = Len(filename)
If loc = flen Then
changeExtension = ""
Exit Function
End If
If dotloc < loc Then
changeExtension = filename + "." + extension
Exit Function
End If
changeExtension = Mid(filename, 1, dotloc) + extension
End Function
版权声明:本文标题:vba 实现Word文档的批量转换为PDF 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728480809a1160081.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论