【问题标题】:Inserting and Linking a Picture into a Shape Fill using VBA使用 VBA 将图片插入并链接到形状填充中
【发布时间】:2019-07-11 02:05:45
【问题描述】:

我正在尝试使用 Excel 中的 vba 将图片 (*.png) 链接并插入到形状填充的 powerpoint 中。最后,我将在 100 多页上循环浏览此内容,并且图片会经常更新,因此自动化这将节省大量时间。目前我已经弄清楚如何循环浏览页面并将图片插入到形状中,但我也无法弄清楚如何链接图片。

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

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

最终这应该表现得像点击一个形状,格式 > 形状填充 > 图片 > 插入和链接(在对话框中插入旁边的下拉菜单中)。

【问题讨论】:

    标签: excel vba powerpoint


    【解决方案1】:

    欢迎来到 SO。

    为了回答您的问题,我将感谢 this similar SO question based on Excelsimilar SO question based on PP。从the microsoft documentation 收集了一些关于该主题的额外信息。

    您似乎正在寻找的是 shape 类中的 ActionSetting 对象,它似乎可用于 PowerPoint 中的形状。下面是在PowerPoint VBA中直接创建的代码sn-p

    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 对象库的引用,或者使用后期绑定方法。请注意,带有超链接的“点击”方法默认为标准的超链接点击(对于带有丹麦语键盘的窗口,ctrl + 鼠标左键)。

    【讨论】:

    • 谢谢。不完全是我想要的。它的功能应该类似于插入和链接图片。因此,如果我要更改图片文件,它会在 powerpoint 中自动更新。
    • 所以我一定误解了这个问题。您不想添加和链接图片,而是希望它自动更新,如果您在哪里更改图片?在文件夹里?在 PowerPoint 中?在excel中?您要查找的是在相应情况下更新图片时会运行的事件,我不确定 VBA 对象模型中是否存在此类事件(如“Commandbutton_Click,如果使用表单)。跨度>
    【解决方案2】:

    并非所有用户界面操作都在 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
    

    【讨论】:

      【解决方案3】:

      请查找附件代码。 首先在PPT中创建一个形状并运行代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-10
        • 2014-02-12
        相关资源
        最近更新 更多