VBA单词:SmartArts和range
我目前正在Word中使用SmartArts。VBA单词:SmartArts和range,vba,ms-word,shapes,smartart,Vba,Ms Word,Shapes,Smartart,我目前正在Word中使用SmartArts。 SmartArt已经存在,我想找到一种方法从范围、Office光标(so选择)或类似于它的东西访问SmartArt值 这是我的SmartArt。 确切地说,SmartArtLayouts是应用程序。SmartArtLayouts(88) 我现在可以做的是: 在我的文档上创建SmartArt,并将其保持为一个形状以进行处理 在SmartArt的所有节点上循环,选择我要保留的节点,并将我要保留的节点插入数据库,并带有指向它们的父节点的链接 现在我被
SmartArt已经存在,我想找到一种方法从范围、Office光标(so选择)或类似于它的东西访问SmartArt值 这是我的SmartArt。
确切地说,SmartArtLayouts是应用程序。SmartArtLayouts(88) 我现在可以做的是:
- 在我的文档上创建SmartArt,并将其保持为一个形状以进行处理
- 在SmartArt的所有节点上循环,选择我要保留的节点,并将我要保留的节点插入数据库,并带有指向它们的父节点的链接
如果我制作一个用户表单,将每个形状文本放在下拉列表中,然后在所有形状上循环,找到其中包含所选文本的形状,这是可能的 如果没有人回答,那可能就是我要做的
但我觉得这种方式既不自然也不实用 因此,我正在寻找一种方法,能够找到光标所在的节点。我会这样做的:
'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
但这太容易了。。。这些形状似乎没有范围
有没有一种方法可以获取具有焦点的节点,或者获取我们单击的节点?
提前谢谢
诚恳地说,首先,这不是一个问题,而是一项任务,但我会给你们一些提示来帮助你们 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 text时,我会将该id分配给alt text。我可以找到任何节点
2.1)当剪切
nod.TextFrame2.TextRange.Text = str
nod.Shapes(1).AlternativeText = index
2.2)检查搜索时
If oShape.SmartArt.AllNodes(i).Shapes(1).AlternativeText = index
imge将显示alt存储的位置
我认为这会在某种程度上帮助你做你需要的事情,但你必须了解智能艺术树在项目删除后是如何变化的
首先,这不是一个问题,而是一项任务,但我会给你一些提示来帮助你 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 text时,我会将该id分配给alt text。我可以找到任何节点
2.1)当剪切
nod.TextFrame2.TextRange.Text = str
nod.Shapes(1).AlternativeText = index
2.2)检查搜索时
If oShape.SmartArt.AllNodes(i).Shapes(1).AlternativeText = index
imge将显示alt存储的位置
我认为这会在某种程度上帮助你做你需要的事情,但你必须了解智能艺术树在项目删除后是如何变化的