繁体   English   中英

VBA - 在SmartArtNodes上使用.onAction

[英]VBA - Using .onAction on SmartArtNodes

我是VBA的新手,并尝试使用smartArt.Nodes根据某些单元格数据动态生成组织结构图。 我能够生成图表没有问题。 现在,我希望能够通过单击显示图表特定节点的更多详细信息。 我知道我们可以使用Excel中的绘图工具将smartArts转换为Shapes,然后在它们上使用.onAction,如:

ActiveSheet.Shapes(name1).OnAction = "detail"

但是,有没有办法使用VBA实现与smartArt.nodes相同的功能? 假设我有一个名为“nodes1”的节点,我尝试过:

nodes1.Shapes.OnAction = "detail"

要么

Dim objShape As Shape
Dim SmartArtNod As SmartArtNode
Set objShape = ActiveSheet.Shapes(1)
Set SmartArtNod = objShape.SmartArt.AllNodes(1)

SmartArtNod.Shapes(1).OnAction = "detail"

和其他组合,但它们似乎都没有工作...谢谢你的帮助!

难以证明是消极的,但我相信这是不可能的。 使用Excel 2013进行测试,我可以确认以下内容不起作用:

  • 尝试使用Worksheet_SelectionChanged捕获SmartArt的选择不会触发。 如果将选择从单元格更改为SmartArt对象,则不会获得事件。 但是,当您失去对SmartArt的关注并返回到单元格时,您将获得一个事件。

  • 您可以选择SmartArt对象,然后进行调试以检查所选内容。 该对象的类型为Object/Shape ,监视窗口指示它公开OnAction属性,但尝试设置此属性将引发错误。

我认为上面的两个问题意味着要从SmartArt中触发OnAction事件将非常困难(如果不是不可能的话)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM