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

Vba Powerpoint:(取消)设置noRot标志-(dis)允许形状旋转,vba,powerpoint,Vba,Powerpoint,我意识到Powerpoint中的某些形状被锁定,无法旋转和翻转。从我到目前为止所看到的(通过检查Powerpoint文件中的XML),有一个名为noRot的标志,它可以接受0或1的值。该标志位于splocksXML标记中。如果此标志设置为1,则形状无法旋转。但是,使用常用的Powerpoint方式似乎无法访问此标志(即,我找不到任何表示此标志的复选框) 可通过以下方式获得其中一个锁定元件: 打开Powerpoint 2003(应弹出一个空的默认演示文稿) 视图-母版-幻灯片母版 应锁定居中的大

我意识到Powerpoint中的某些形状被锁定,无法旋转和翻转。从我到目前为止所看到的(通过检查Powerpoint文件中的XML),有一个名为
noRot
的标志,它可以接受
0
1
的值。该标志位于
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复选框中进行设置)?

某些功能仅在XML中公开,这就是ShapeLocker这样做的原因。UI或对象模型中没有支持锁定形状的内容。不幸的是