Powerpoint :( Un)设置noRot标志 - (dis)允许形状旋转

时间:2015-01-27 11:05:28

标签: vba powerpoint

我意识到Powerpoint中的某些形状会被锁定以防止旋转和翻转。根据我目前所见(通过检查Powerpoint文件中的XML),有一个名为noRot的标志,可以取值01此标志位于a splocks XML标记。如果此标记设置为1,则无法旋转形状。但是,使用通常的Powerpoint方法似乎无法访问此标志(即我找不到任何代表此标志的复选框)。

其中一个锁定元素可以通过以下方式获得:

  • 打开Powerpoint 2003(应弹出一个空的默认演示文稿)
  • 查看 - 大师 - 幻灯片大师
  • 应锁定大中心占位符文本框

我保存了一个包含此文本框的演示文稿,在各种版本的Powerpoint中打开它,专门选择了保存的文本框,并在选择中尝试了以下VBA命令:

ActiveWindow.Selection.ShapeRange(1).Rotation = 10
ActiveWindow.Selection.ShapeRange(1).Flip msoFlipHorizontal

在所有版本中,这些命令都会失败。

  • 设置旋转失败:

    • Powerpoint 2003:"运行时错误70:权限被拒绝"
    • Powerpoint 2007以后:"运行时错误-2147024809(80070057):形状已锁定且无法旋转"
  • 翻转失败:

    • Powerpoint 2003:静默(即没有运行时错误,但没有可观察到的更改)
    • Powerpoint 2007以后:"运行时错误-2147024809(80070057):形状已锁定且无法旋转"

我意识到已经有一种产品(ShapeLocker)可以锁定/解锁这些形状。然而,显然,这个工具似乎修改了XML,这看起来非常麻烦。

是否有任何已知/记录的方法如何(取消)在VBA中设置此标志(或者甚至可以在某些Powerpoint复选框中完成,我忽略了它)?

1 个答案:

答案 0 :(得分:0)

某些功能仅在XML中公开,这就是ShapeLocker以这种方式实现的原因。 UI或对象模型中没有任何内容可以支持锁定形状。不幸的是