我正在尝试使用Excel中的vba链接并将图片(* .png)插入到PowerPoint填充的形状中。最后,我将在100多个页面上循环浏览,并且图片将经常更新,因此自动执行将节省大量时间。目前,我已经找到了如何遍历页面并将图片插入形状的方法,但是我也无法找到如何链接图片的方法。
我正在使用以下代码在图片中填充形状,但找不到同时插入和链接它的语法:
Pres.Slides(1).Shapes(ShapeName).Fill.UserPicture PictureFilePath
最终,它的行为应类似于单击形状,进行格式>形状填充>图片>插入并链接(在对话框中插入旁边的下拉菜单中)。
答案 0 :(得分:0)
欢迎来到SO。
为回答您的问题,我将对this similar SO question based on Excel和此similar SO question based on PP表示感谢。从the microsoft documentation收集了有关该主题的一些其他信息。
您似乎正在寻找的是shapes类中的ActionSetting
对象,该对象似乎可以在PowerPoint中使用。下面是直接在PowerPoint VBA中创建的代码段
Sub insertPictureIntoShapeWithLinkToPicture()
Dim PP_Slide As Slide, PP_Shape As Shape, imagePath As String
Set PP_Slide = ActivePresentation.Slides(1) 'Set slide (change as necessary)
Set PP_Shape = PP_Slide.Shapes(1) 'Set shape (change as necessary)
imagePath = "Path to image"
With PP_Shape
'add picutre
.Fill.UserPicture imagePath
'Set an action on click
With .ActionSettings(ppMouseClick)
'Set action to hyperlink
.Action = ppActionHyperlink
'Specify address
.Hyperlink.Address = imagePath
End With
End With
End Sub
可以通过Excel使用相同的方法,可以添加对PowerPoint对象库的引用,也可以使用Late-Binding方法。请注意,带有超链接的'click'方法默认为标准的超链接单击(对于带有丹麦语键盘的Windows,则为ctrl +鼠标左键)。
答案 1 :(得分:0)
并非所有用户界面操作都在VBA对象模型中。这些例外之一是创建指向形状填充的链接。您可以得到的最接近的链接是将插入的图片链接为图片而不是填充。这是添加链接图片的语法。假定图片与演示文稿位于同一文件夹中:
Sub Macro1()
ActiveWindow.Selection.SlideRange.Shapes.AddPicture(FileName:="Picture1.png", LinkToFile:=msoTrue, SaveWithDocument:=msoFalse, Left:=300, Top:=251, Width:=121, Height:=38).Select
End Sub
答案 2 :(得分:0)