gpt4 book ai didi

VBA 取消组合形状(SmartArt)

转载 作者:行者123 更新时间:2023-12-04 15:49:22 26 4
gpt4 key购买 nike

有谁知道如何通过 VBA 取消组合 SmartArt 元素?

Sub UngroupSmartArt()

Dim shapeWithSmartArt As Shape
Set shapeWithSmartArt = ActivePresentation.Slides(2).Shapes(2)

shapeWithSmartArt.Ungroup

End Sub

我收到此代码的错误:
“这个成员只能被一个组访问。”

这对我来说没有任何意义,因为在 powerpoint 本身中很容易做到这一点(右键单击 SmartArt -> Group -> Ungroup)。这让我发疯:)

任何人都可以帮助我取消 SmartArt 元素/形状的分组吗?

我也看了一下类似的 question ,但它不能正常工作,因为与通过 powerpoint 本身制作的结果相比,未分组的结果是不同的。

请帮帮我。我真的很感激任何帮助!

最佳答案

通过 VB 代码根本不可能做到这一点。这也是微软的声明。使用 SmartArt 的缺点还在于用户无法使用宏(使用 Excel)记录对此类对象/元素执行的任何操作。

SmartArt 节点的宽度或高度属性也无法通过VB 更改,这也是我想将SmartArt 元素更改为形状的原因,因为您可以通过代码轻松更改形状的宽度和高度属性。

微软和他们的开发人员真的应该考虑让 SmarArt 元素对开发人员更友好,因为我注意到我不是唯一遇到这些问题的人。

编辑:找到解决方案!有一种方法可以从 powerpoint 功能区执行命令。您需要先选择您的形状,然后使用以下操作执行 CommandBars.ExecuteMso:SmartArtConvertToShapes。

Sub UngroupSmartArt()

Dim shapeWithSmartArt As Shape
Set shapeWithSmartArt = ActivePresentation.Slides(2).Shapes(2)

shapeWithSmartArt.Select
CommandBars.ExecuteMso("SmartArtConvertToShapes")

End Sub

这仍然不能改变事实和我的观点:微软真的应该考虑让 SmartArt 元素对开发者更加友好!

关于VBA 取消组合形状(SmartArt),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42369258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com