使用VBA将图片插入和链接到Shape Fill中

时间:2019-07-11 02:05:45

标签: excel vba powerpoint

我正在尝试使用Excel中的vba链接并将图片(* .png)插入到PowerPoint填充的形状中。最后,我将在100多个页面上循环浏览,并且图片将经常更新,因此自动执行将节省大量时间。目前,我已经找到了如何遍历页面并将图片插入形状的方法,但是我也无法找到如何链接图片的方法。

我正在使用以下代码在图片中填充形状,但找不到同时插入和链接它的语法:

Pres.Slides(1).Shapes(ShapeName).Fill.UserPicture PictureFilePath

最终,它的行为应类似于单击形状,进行格式>形状填充>图片>插入并链接(在对话框中插入旁边的下拉菜单中)。

3 个答案:

答案 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)

请找到随附的代码。 首先在PPT中创建形状并运行代码。 enter image description here