基本用法是:
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