admin管理员组

文章数量:1605628

如图,在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

本文标签: 转换为批量文档VBAword