📜  如何使用 Excel VBA 将多个 PowerPoint 文件转换为 Pdf?(1)

📅  最后修改于: 2023-12-03 15:08:18.469000             🧑  作者: Mango

如何使用 Excel VBA 将多个 PowerPoint 文件转换为 Pdf?

在日常工作中,很多时候需要将 PowerPoint 文件转换为 Pdf 格式。如果每个文件都手动进行操作,无疑效率很低,此时可以使用 Excel VBA 自动化处理。

以下是具体的实现步骤:

1. 引用 Microsoft PowerPoint 对象库

要在 VBA 中对 PowerPoint 进行操作,需要先引用 Microsoft PowerPoint 对象库。具体步骤如下:

  • 打开 Excel 文件,依次点击 工具 -> 引用
  • 在弹出的“引用”对话框中,勾选 "Microsoft PowerPoint X.XX Object Library",其中的 X.XX 表示 PowerPoint 的版本号
  • 点击确定,完成引用
2. 编写 VBA 代码
连接到 PowerPoint 应用程序

在 VBA 代码中,先要建立与 PowerPoint 应用程序的连接。代码如下:

Dim pptApp As PowerPoint.Application
Set pptApp = New PowerPoint.Application
pptApp.Visible = False ' 设置 PowerPoint 不可见
打开 PowerPoint 文件

有两种方法可以打开 PowerPoint 文件:

方法一:打开 existing presentation

Dim ppt As PowerPoint.Presentation
Set ppt = pptApp.Presentations.Open("filepath.pptx")

方法二:新建 presentation

如果你想新建一个 PowerPoint 文件,在 VBA 代码中,可以这样实现:

Dim ppt As PowerPoint.Presentation
Set ppt = pptApp.Presentations.Add
保存为 Pdf 格式

在 PowerPoint 文件中,你可以有多个幻灯片,需要将它们全部保存为 Pdf 格式。具体操作如下:

Dim folderPath As String
folderPath = "C:\pdfFolder\"

' 遍历幻灯片并保存为 Pdf
Dim slide As PowerPoint.Slide
For Each slide In ppt.Slides
    Dim slideFileName As String
    slideFileName = "Slide" & slide.SlideNumber & ".pdf"
    slide.Export folderPath & slideFileName, "PDF", False
Next slide
关闭 PowerPoint 文件和应用程序

保存完毕后,需要关闭 PowerPoint 文件和应用程序:

ppt.Close
pptApp.Quit
3. 完整的 VBA 代码

下面是完整的 VBA 代码,可将多个 PowerPoint 文件转换为 Pdf 格式。在代码中,将多个文件的路径保存在 Excel 的第 1 列中。

Sub convertPptToPdf()
    Dim pptApp As PowerPoint.Application
    Set pptApp = New PowerPoint.Application
    pptApp.Visible = False
    
    Dim ws As Worksheet
    Set ws = ThisWorkbook.ActiveSheet
    Dim lastRow As Long
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    Dim i As Long
    For i = 1 To lastRow
        Dim filePath As String
        filePath = ws.Cells(i, 1).Value
        
        Dim ppt As PowerPoint.Presentation
        Set ppt = pptApp.Presentations.Open(filePath)
        
        Dim folderPath As String
        folderPath = "C:\pdfFolder\"

        Dim slide As PowerPoint.Slide
        For Each slide In ppt.Slides
            Dim slideFileName As String
            slideFileName = "Slide" & slide.SlideNumber & ".pdf"
            slide.Export folderPath & slideFileName, "PDF", False
        Next slide
        
        ppt.Close
    Next i
    
    pptApp.Quit
    Set pptApp = Nothing
End Sub

以上就是使用 Excel VBA 将多个 PowerPoint 文件转换为 Pdf 的具体实现方式。如果有需要,你可以自定义 Pdf 文件的保存路径和文件名。