分享

问与答115:如何使用VBA从Excel中复制图片并将其粘贴到PowerPoint的指定幻灯片?

 hercules028 2021-04-13

excelperfect

Q我在Excel工作表中包含有1张图片,名称是默认的“图片 1”,我怎样编写VBA代码来打开一个已存在的PPT文件,先删除该PPT中所有的图片,然后将“图片 1”复制并粘贴到该PPT的第2张幻灯片中。

A首先,添加对“MicrosoftPowerPoint XX.0 Object Library”库的引用,如下图1所示。

Image

图1

然后,输入如下代码:

Sub PPT_Autom()

    Dim ObjPPT As PowerPoint.Application

    Dim oPresentation AsPowerPoint.Presentation

    Dim oSlide As PowerPoint.Slide

    Dim oShape As PowerPoint.Shape

    Dim i As Long

    Dim opath As String

    opath = 'E:\问与答115\exceltoppt.pptx'

    Set ObjPPT = New PowerPoint.Application

    ObjPPT.Visible = msoCTrue

    Set oPresentation =ObjPPT.Presentations.Open(opath, msoCTrue)

   '删除PPT中的所有图片

    For Each oSlide In oPresentation.Slides

        For i = oSlide.Shapes.Count To 1 Step-1

            Set oShape = oSlide.Shapes(i)

            If oShape.Type = msoPicture Then oShape.Delete

        Next i

    Next oSlide

    Sheet1.Shapes('图片 1').Copy

    ObjPPT.Activate

    ObjPPT.ActiveWindow.View.GotoSlide (2)

    ObjPPT.ActivePresentation.Slides(2).Shapes.PasteSpecial(DataType:=ppPasteMetafilePicture).Select

    With ObjPPT.ActiveWindow.Selection.ShapeRange

        .LockAspectRatio = False

        .Left = 50

        .Top = 50

        .LockAspectRatio = False

        .Height = 300

        .Width = 300

    End With

    Set oSlide = Nothing

    Set oPresentation = Nothing

End Sub

小结:

Excel与其他Office应用程序(例如Word、PowerPoint)相交互是常见的应用,因为他们都属于Office家族,因此很方便整合。

注:今天的这个问题来源于mrexcel.com论坛,略有修改,供有兴趣的朋友学习参考。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多