真的不确定将其放置在哪个堆栈站点上。随意将其移至正确的位置。我的问题与编程并没有真正的关系,但我有很多关于幻灯片中嵌入的“工作表对象”的电源点。有些似乎是来自 excel 的图表以及来自 Visio 的其他图表类型项目。我需要将所有这些“工作表对象”转换为幻灯片中的图像。
我现在的过程是复制对象>粘贴为图像>移动到正确的位置>删除“工作表对象”。这是一个非常耗时且乏味的过程。是否有我可以编写的宏或可以自动转换所有这些对象的东西?我试过谷歌搜索,到目前为止没有运气
真的不确定将其放置在哪个堆栈站点上。随意将其移至正确的位置。我的问题与编程并没有真正的关系,但我有很多关于幻灯片中嵌入的“工作表对象”的电源点。有些似乎是来自 excel 的图表以及来自 Visio 的其他图表类型项目。我需要将所有这些“工作表对象”转换为幻灯片中的图像。
我现在的过程是复制对象>粘贴为图像>移动到正确的位置>删除“工作表对象”。这是一个非常耗时且乏味的过程。是否有我可以编写的宏或可以自动转换所有这些对象的东西?我试过谷歌搜索,到目前为止没有运气
这应该让你开始:
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
如果您不想编写宏,其他快速替代方法是剪切对象 (Ctrl + x),然后将其粘贴 (Ctrl + v) 为 img(我们可以使用特殊粘贴来选择图像格式或粘贴时(Ctrl + v) MS power point 将提示粘贴选项,然后在其中选择图像)。这样我们就不必将图像保存到驱动器上的某个位置,然后再将其插入幻灯片中。剪切和粘贴将在同一张幻灯片上工作。