我有一个非常大而复杂的PowerPoint,其中包含全尺寸图像作为每张幻灯片的背景。我有一个目录,里面装满了这些背景图片,这些图片都是JPEG格式的。有时我会更改这些用Photoshop制作的照片,当我更改它们时,我将它们保存在同一目录中的原始JPEG上。
然后我必须在PowerPoint中更新它们。执行此操作的手动功能是右键单击照片,然后单击替换照片,然后从文件菜单中选择新的JPEG。我想在Visual Basic中编写一个宏,它将遍历整个幻灯片,并从更新的JPEG重新加载图形,而不必手动完成。我不知道是否可能,因为我不知道PowerPoint是否真的记得它所放置的每张图片的路径和文件名。
是否有图片属性包含用于首先粘贴图片的路径和文件名?如果有,我可以找到该属性,查询它,并将其用作重新加载的路径,从而通过幻灯片一直递归地更新图片。
这可能吗?
答案 0 :(得分:0)
是否有图片属性,其中包含用于首先粘贴图片的路径和文件名?
我不是很清楚,但你可以使用Tags属性创建自己的:
http://msdn.microsoft.com/en-us/library/office/ff744290(v=office.15).aspx
您必须为每张幻灯片分配一个自定义标记,例如:
Sub AssignTag()
Dim sld as Slide
Set sld = ActivePresentation.Slides(1)
sld.Tags.Add "img_location", "C:\files\image1.JPG"
End Sub
配置幻灯片Tags
后,您可以执行以下操作从该位置进行更新:
Sub UpdateJPGs()
Dim sld As Slide
Dim path As String
For Each sld In ActivePresentation.Slides
path = sld.Tags("img_location")
If Not path = vbNullString Then
On Error Resume Next
sld.Background.Fill.UserPicture path
If Err Then
MsgBox "Unable to update slide #" & sld.SlideNumber
Err.Clear
End If
On Error GoTo 0
End If
Next
End Sub