[英]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.