VBA单词:SmartArts和range

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的所有节点上循环,选择我要保留的节点,并将我要保留的节点插入数据库,并带有指向它们的父节点的链接 现在我被

我目前正在Word中使用SmartArts。
SmartArt已经存在,我想找到一种方法从范围、Office光标(so选择)或类似于它的东西访问SmartArt值

这是我的SmartArt。
确切地说,SmartArtLayouts是应用程序。SmartArtLayouts(88)

我现在可以做的是:

  • 在我的文档上创建SmartArt,并将其保持为一个形状以进行处理
  • 在SmartArt的所有节点上循环,选择我要保留的节点,并将我要保留的节点插入数据库,并带有指向它们的父节点的链接
现在我被什么东西挡住了。 我想找到一种在DB和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存储的位置

我认为这会在某种程度上帮助你做你需要的事情,但你必须了解智能艺术树在项目删除后是如何变化的