Document.ContentControls
集合不支持按名称检索项目,仅支持索引。
我是否仍可以通过用户定义的标识符获取特定的ContentControl
,以保持代码可读? (例如Content control titles - Ms Office Forums声称只能逐一尝试。)
答案 0 :(得分:3)
有Document.SelectContentControlsByTitle()
和Document.SelectContentControlsByTag()
方法。
由于控件的属性都不保证是唯一的,因此两者都返回ContentControls
个结果集合。这样的函数可用于验证结果是否存在且是唯一的:
Public Function CCSingle(source As ContentControls) As ContentControl
Select Case Sgn(source.Count - 1)
Case -1
'9 = subscript out of range
'http://onlinelibrary.wiley.com/doi/10.1002/9781118257616.app3/pdf
Call Err.Raise(9, , "Identifier not found")
Case 1
Call Err.Raise(9, , "Identifier not unique")
Case Else
Set CCSingle = source.Item(1)
End Select
End Function
答案 1 :(得分:1)
内容控件可以通过其.Tag属性及其.Title属性进行标识。这是一种简单化的东西。它从所有与标题和标记匹配的内容控件集合中返回第一个内容控件。
Function FindCCbyTitleAndTag (Title as string, Tag as string) as ContentControl
Dim CC as ContentControl
For each CC in ActiveDocument.ContentControls
If CC.Title = Title and CC.Tag = Tag then
FindCCbyTitleAndTag = CC
End If
Next CC
End Function