【问题标题】:Powerpoint: (Un)setting noRot flag - (dis)allowing shape rotationPowerpoint:(Un)设置 noRot 标志 - (dis)允许形状旋转
【发布时间】:2015-03-25 23:31:58
【问题描述】:

我意识到 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 复选框中完成,我忽略了)?

【问题讨论】:

    标签: vba powerpoint


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-21
      • 2018-09-28
      • 1970-01-01
      • 2020-09-29
      • 1970-01-01
      • 2014-12-03
      • 2023-04-10
      • 1970-01-01
      相关资源
      最近更新 更多