3

我正在 VBA 中迈出第一步。我一直在尝试很多事情,但我仍然没有找到一种方法将 .pptm PowerPoint 演示文稿保存为 .pptx 格式,并在特定路径中使用相同的文件名?我已经使用以下代码保存为 pdf。

ActivePresentation.ExportAsFixedFormat "c:\" + Replace(ActivePresentation.Name, "pptm", "pdf"), ppFixedFormatTypePDF, ppFixedFormatIntentPrint, msoCTrue

先感谢您。

4

1 回答 1

4

基本用法是:

With ActivePresentation
    .SaveCopyAs _
        FileName:=.Path & "\" & Left(.Name, InStrRev(.Name, ".")) & "pptx", _
        FileFormat:=ppSaveAsOpenXMLPresentation
End With

(或者您可以使用 .SaveAs。SaveAsCopy 保持当前打开而不打开副本,而 .SaveAs 将当前设置为保存的版本)

但是,如果您要保存的 Powerpoint 至少没有保存一次,则上述内容将出错(Presentation.Name 中没有可使用 InStrRev 查找的文件扩展名)。您可以测试是否没有句号,或者您可以使用一种懒惰的方法来询问 FileSystemObject 以获取没有扩展名的名称(我很懒惰,所以我更喜欢这种方法):

所以更好更健壮的方法是:

Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")

With ActivePresentation
    .SaveCopyAs _
        FileName:=fso.BuildPath(.Path, fso.GetBaseName(.Name) & ".pptx"), _
        FileFormat:=ppSaveAsOpenXMLPresentation
End With
于 2013-08-17T14:04:33.263 回答