大家可能会有批量将ppt转为pptx格式的需求。
不过不要怕下面的代码,这只是让你粘贴复制的简单操作,不懂代码的完全不用担心。只要把代码中的一行,改成你的所有*.ppt文件所在路径即可。
废话不多说,步骤为:
1.随意打开一个ppt或者pptx文件(目的是打开Powerpoint这个软件)
我随意打开了一个简单的ppt:
2.按快捷键Alt+F11打开VBA(Microsoft Visual Basic for Applications)窗口,目的是将下面的代码插入到VBA模块里。
插入-模块-将下面的代码复制到打开的模块里。
3.重要一步:就是将你的所有*.ppt文件目录放在第7行的双引号内。不过具体操作中要说明的是:
我的路径是
E:\ppt文件\项目ppt
放入第7行时候,一定要在路径后面加个反斜杠\,不然的话运行程序没反应的。
sSourcePath = "E:\ppt文件\项目ppt\" '..第7行
这样表明是文件夹内的文件。
'pptx转pdf、ppt '..第1行
Option Explicit '..第2行
Sub ppt2pptx() '..第3行
On Error Resume Next '..第4行
Dim sEveryFile As String, sSourcePath As String, sNewSavePath As String '..第5行
Dim CurPpt As Object '..第6行
sSourcePath = "E:\ppt文件\项目ppt\" '..第7行
'假定待转换的pptx文件全部在"E:\ppt文件\项目ppt\"下,需要按实际情况修改。..第8行
sEveryFile = Dir(sSourcePath & "*.ppt") '..第9行
Do While sEveryFile <> "" '..第10行
Set CurPpt = Presentations.Open(sSourcePath & sEveryFile, msoTrue, , msoFalse) '..第11行
sNewSavePath = VBA.Strings.Replace(sSourcePath & sEveryFile, ".ppt", ".pptx") '..第12行
'如果想把ppt导出pdf,就把第12行行尾的pptx换成pdf并且15行的ppSaveAsDefault改为ppSaveAsPDF即可 ..第13行
'转化后的文件在同文件目录下,当然你可以按需修改。..第14行
CurPpt.SaveAs sNewSavePath, ppSaveAsDefault '..第15行
'pdf对应ppSaveAsPDF,ppt对应ppSaveAsPresentation,pptx对应ppSaveAsDefault
CurPpt.Close SaveChanges:=False
sEveryFile = Dir
Loop
Set CurPpt = Nothing
End Sub
4.最后一步,点击运行按钮,即可等待批处理保存为pptx!
小技巧分享:将多个文件夹内的所有ppt文件一次性放在同一个文件夹内:
我的新建文件夹内有2个文件夹,每个文件夹又包含ppt文件,我这里每个文件夹只有一个ppt文件.
在新建文件夹右边的搜索栏中搜关键字ppt,
这样就收到此父文件夹内所有子文件夹内的ppt文件,可以按Ctrl+A全部选中,然后Ctrl+X剪切 或 Ctrl+C 复制到父文件夹内或者另一个单独文件夹内就把 所有ppt放到一个文件夹内了。
说白了就是利用搜索功能搜出来所有的ppt. 当然方法也可以应用其他格式:PDF,docx,pptx…
如果用的是Ctrl+X 剪切所有ppt文件,可以等会按Ctrl+Z撤回,这些文件又跑到各自所在的文件夹内了。(我一般用剪切,这样省内存 囧。。。)