我有大约15个不同的幻灯片,每个幻灯片包含3-4张幻灯片。每个套牌由"证书"分发给每个在证书上命名的个人收件人。这个过程每个月重复一次。
理想情况下,我想启用VBA脚本来提取每个工作表以保存为(或打印为)PDF,并使用幻灯片上指定的收件人名称保存文件...这可能吗?< / p>
我发现的最好的是这段代码(它不能在我的Mac上运行,但在VM上工作正常)将幻灯片分成PDF格式,但我希望命名为改变了。
非常感谢任何帮助!!
Sub ExportSlidesToIndividualPDF()
Dim oPPT As Presentation, oSlide As Slide
Dim sPath As String, sExt As String
Set oPPT = ActivePresentation
sPath = oPPT.FullName & "_Slide_"
sExt = ".pdf"
For Each oSlide In oPPT.Slides
i = oSlide.SlideNumber
oSlide.Select
oPPT.ExportAsFixedFormat _
Path:=sPath & i & sExt, _
FixedFormatType:=ppFixedFormatTypePDF, _
RangeType:=ppPrintSelection
Next
Set oPPT = Nothing
End Sub
编辑以进一步澄清:
我被迫在我的Windows虚拟机中运行该脚本,当我这样做时,我丢失了我在幻灯片中设置的所有格式,在办公室创建的#c; 11(这是我首先导出为PDF的重要原因之一)。
关于我的项目的更多信息:
我正在编写几千行&#34;行动&#34; (数据),根据4个不同奖项类别的标准,为12-15名不同的高级管理人员确定获奖者
2.计算结果,然后从LDAP目录中检索获奖者信息(名称,ID,以及他们的经理和执行人员的相同信息)。然后在后面的步骤中输入用于邮件合并的csv
3.所有幻灯片均使用模板幻灯片,(12-15名高管每人有3-4名获奖者)
4.从这些幻灯片中创建单独的PDF证书
5.起草祝贺消息,从准备好的csv中提取字段以进行邮件合并,然后导出到Outlook 2011发件箱(客户端离线)。
6.我在发件箱中手动将每个单独的证书附加到每封邮件中
7.发送。
我编译了这里链接的文件样本集:Recognition Files (Sample)
答案 0 :(得分:0)
每张幻灯片上有一个或多个形状。为了便于说明,假设收件人的姓名是第一个形状。
Sub ExportSlidesToIndividualPDF()
Dim oPPT As Presentation, oSlide As Slide
Dim sPath As String, sExt As String
Set oPPT = ActivePresentation
sExt = ".pdf"
For Each oSlide In oPPT.Slides
'## Retrieve the recipient's name from the shape and append it to the exported path:
sPath = oPPT.FullName & oSlide.Shapes(1).TextFrame.TextRange.Text
i = oSlide.SlideNumber
oSlide.Select
oPPT.ExportAsFixedFormat _
Path:=sPath & sExt, _
FixedFormatType:=ppFixedFormatTypePDF, _
RangeType:=ppPrintSelection
Next
Set oPPT = Nothing
End Sub
可能更复杂,取决于幻灯片的配置方式(例如,如果某个形状包含名称和其他文本,则需要一个函数来解析出正确的名称并省略其余的等等。
如果您需要进一步的帮助,请提供有关问题的更多详细信息。