vba创建无法手动编辑的形状

时间:2014-03-10 14:44:48

标签: vba powerpoint shape powerpoint-vba

我想在powerpoint中使用vba创建无法手动编辑的形状(移动,调整大小,更改颜色......)。

即使用vba无法编辑但可以删除对我来说已经足够了。有没有办法在powerpoint中创建那种不可编辑的形状?

我读了一些关于excel中受保护形状的线程,但是在powerpoint中我不能使用myShape.protect。

2 个答案:

答案 0 :(得分:0)

您只能在XML而不是vba中执行此操作。

这里有一个锁定形状的简单示例。您可以查看XML以了解它是如何完成的。http://www.pptalchemy.co.uk/Downloads/noMove.pptx

如果你不知道如何做到这一点,Chirag Dahl有一个相当便宜的插件来为你做。

http://officeone.mvps.org/shapelocker/shapelocker.html

答案 1 :(得分:0)

我终于设法做到了这一点:

Public Sub PPTApp_WindowSelectionChange(ByVal Sel As Selection)
    On Error GoTo NoShape
    If Sel.ShapeRange.name = "arrow" Then
        ActiveWindow.Selection.Unselect
    End If
NoShape:
    If Err.Description <> "" Then
        Err.Clear
    End If
End Sub

也许不是最好的方式......但至少它有效。希望它对任何人都有用。如果有人知道更好的方式,请告诉我在这里发布。