将所有"工作表对象"转换为powerpoint中的图像

Ron*_*nie 5 powerpoint vba worksheet

真的不确定要放置什么堆栈站点.随意将其移动到正确的.我的问题与编程无关,但我在幻灯片中嵌入了这些"工作表对象",有很多功能点.有些似乎是excel中的图形以及Visio中的其他图表类型项目.我需要将所有这些"工作表对象"转换为幻灯片中的图像.

我现在的过程是复制对象>粘贴为图像>移动到正确的位置>删除"工作表对象".这是一个非常耗时且乏味的过程.有没有我可以编写的宏或可以自动转换所有这些对象的东西?我到目前为止尝试使用谷歌搜索并没有运气

Ste*_*erg 8

这应该让你开始:

Sub ConvertAllShapesToPic()
    Dim oSl As Slide
    Dim oSh As Shape

    For Each oSl In ActivePresentation.Slides
        For Each oSh In oSl.Shapes
            ' modify the following depending on what you want to
            ' convert
            Select Case oSh.Type
                Case msoChart, msoEmbeddedOLEObject, msoLinkedOLEObject
                    ConvertShapeToPic oSh
                Case msoPlaceholder
                    If oSh.PlaceholderFormat.ContainedType = msoEmbeddedOLEObject _
                        Or oSh.PlaceholderFormat.ContainedType = msoLinkedOLEObject _
                        Or oSh.PlaceholderFormat.ContainedType = msoChart _
                        Then
                        ConvertShapeToPic oSh
                    End If
                Case Else

            End Select
        Next
    Next

End Sub

Sub ConvertShapeToPic(ByRef oSh As Shape)
    Dim oNewSh As Shape
    Dim oSl As Slide

    Set oSl = oSh.Parent
    oSh.Copy
    Set oNewSh = oSl.Shapes.PasteSpecial(ppPasteEnhancedMetafile)(1)

    With oNewSh
        .Left = oSh.Left
        .Top = oSh.Top
        Do
            .ZOrder (msoSendBackward)
        Loop Until .ZOrderPosition < oSh.ZOrderPosition
    End With

    oSh.Delete

End Sub
Run Code Online (Sandbox Code Playgroud)