我目前正在使用Word中的SmartArts SmartArt已经存在,我想找到一种方法来从范围,Office光标(选择)或类似的东西访问SmartArt值。
这是我的SmartArt 确切地说,SmartArtLayout是Application.SmartArtLayouts(88)
我能做什么:
现在我被封锁了。 我想在DB和SmartArt中找到一种编辑/删除特定节点的方法 如果我创建一个将每个Shape Text放在下拉列表中的Userform,然后我循环所有形状以找到包含所选文本的形状,就有可能。
如果没有人回答,那可能就是我要做的事情。
但我不会发现这种方式自然或实用。
所以我正在寻找一种能够找到光标在其上的节点的方法。我会做那样的事情:
'Putting my SmartArt in SAShape
For Each Node In SAShape.SmartArt.AllNodes
If (Selection.Range.InRange(Node.Range)) Then
'my code
End If
Next Node
但它过于简单......形状似乎没有范围。
有没有办法让Node获得焦点,或者获取我们点击的节点? 提前谢谢!
亲切地,
答案 0 :(得分:0)
这不是问题,但它是任务,但我会给你一些提示来帮助你
1)获取任何级别循环中的任何节点都将是这样的
Set oShape = ActiveSheet.Shapes(1)
For i = 1 To oShape.SmartArt.AllNodes.Count
oShape.SmartArt.AllNodes(i).TextFrame2.TextRange.Text = "Sample " & i
Next
2)要获取用于删除或编辑的特定节点,您必须确定一个我无法做到完美的ID但是当我添加alt文本时我将id分配给alt文本我可以找到任何节点
2.1)当shearch
nod.TextFrame2.TextRange.Text = str
nod.Shapes(1).AlternativeText = index
2.2)检查搜索时
If oShape.SmartArt.AllNodes(i).Shapes(1).AlternativeText = index
并且imge将显示alt store
的位置我认为会以某种方式帮助你做你需要的事情,但你必须了解项目删除后智能艺术树的变化