VBA:在Powerpoint中的某个位置以特定文件格式插入剪贴板中的内容

时间:2014-06-30 14:42:56

标签: vba powerpoint-vba

我正在寻找一个vba脚本,它会将我剪贴板的当前内容粘贴到一个可指定的位置(让我们说在当前选中的幻灯片外面的右上角)。 我希望脚本将其粘贴为.emf。但是,如果有人可以向我解释如何操作脚本来选择位置,另一个粘贴结束会很棒。

提前感谢您的帮助。

编辑:我最终想要实现的是获取插入的剪贴板内容并使其左下对齐到已在Powerpoint中选择的形状,然后删除已存在的形状。因此,对于用户来说,过程将是: 1.复制,例如从excel到剪贴板的图表 2.在powerpoint幻灯片上选择一个形状 3.运行脚本 4.粘贴内容,左对齐和底部对齐,然后删除旧的形状

如果有人知道如何做到这一点很棒。

1 个答案:

答案 0 :(得分:1)

您之前问题的答案的修改版本。您无法控制粘贴某些内容的位置,但您可以在粘贴时获取对该形状的引用,并使用该形状将其移动到您想要的位置:

Dim oBackShape As Shape
Dim oFrontShape As Shape
Dim oSlide As Slide

' Now we'll assume that only one shape is selected:
Set oBackShape = ActiveWindow.Selection.ShapeRange(1)
' Get a reference to the slide that the shape is on
Set oSlide = oBackShape.Parent
' Paste the contents of the clipboard as EMF and
' get a reference to the new shape
Set oFrontShape = oSlide.Shapes.PasteSpecial(ppPasteEnhancedMetafile)(1)

With oFrontShape
    ' Left align them
    .Left = oBackShape.Left
    ' Bottom align them
    .Top = oBackShape.Top - (.Height - oBackShape.Height)
End With

oBackShape.Delete