【问题标题】:How do you "ungroup" an image in PowerPoint using VBA如何使用 VBA 在 PowerPoint 中“取消组合”图像
【发布时间】:2011-01-19 14:44:18
【问题描述】:

我有一个 PowerPoint 文件,其中包含一张带有图像(wmf/emp 文件)的幻灯片,我想使用 VBA “取消组合”其中的图像元素。

我需要两次询问 PowerPoint 才能做到这一点 - 但它确实做到了。

可以使用 VBA 完成吗?如果有,怎么做?

【问题讨论】:

  • 对象是否首先被“分组”?你是说有不止一个 WMF 'Group'ed 在一起吗?如果对象只是一个单独的 WMF,那么在不直接写入 GDI 的情况下被解构为单独的行难道不是不可渗透的吗?
  • Power point 询问是否将对象转换为 Microsoft 对象,我同意 - 它会取消组合。
  • 可以理解,我只是没有资金在不了解更多信息的情况下复制您的问题。我假设您已准备好 VBA 编辑器(功能区上的“开发人员”选项卡)?如果是这样,您是否在 Record Macro 运行时尝试过您描述的例程?也许 Record Macro 会拾取您正在执行的操作并自动将它们转换为代码以开始使用。如果是这样,并且您将其重新处理为子例程并不能解决问题,那么......让 Sub 运行两次剪辑将。 (当然,这一切都基于从 Record 会话中检索到有用的东西。)
  • 你好。我想问你一些关于如何取消组合一些形状的问题。对于我的工作,我有 239 张幻灯片,然后对于每张幻灯片,我必须按右键单击并按“取消组合”。是否有任何宏只将所有幻灯片取消组合一次?我在这里得到了一些帮助:stackoverflow.com/questions/34432550/…,但是这段代码不能很好地工作,因为复制了所有幻灯片中的所有图片并放在我用鼠标拾取的幻灯片中。感谢您的帮助!

标签: vba powerpoint


【解决方案1】:

这相当简单 - 来自帮助文件:

此示例取消组合任何已分组的 塑造和拆卸任何图片 或 myDocument 上的 OLE 对象。

Set myDocument = ActivePresentation.Slides(1)
For Each s In myDocument.Shapes
    s.Ungroup
Next

如果无法取消分组,您可能需要进行一些错误检查,例如 JPG,以及一些类型检查(即If s.Type = msoPicture...

【讨论】:

    【解决方案2】:

    不是直接回答这个问题,而是......

    了解如何使用 VBA 自动化办公应用程序的唯一最佳方法是 record a macro and then look at the code that gets spit out

    【讨论】:

    • 谢谢 - 下次我会记住的。
    猜你喜欢
    • 2013-02-07
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    相关资源
    最近更新 更多