Word VBA 删除带有特定标签的内容控件
Word VBA to delete Content Controls with specific Tags
我在SO上阅读了How to find and disable a content control by tag问题的答案(为了方便起见,下面是代码)。就我而言,我需要删除带有 SPECIFIC 标签的内容控件 (CC)。
例如,在文档中的 150 个 CCs
中,我只需要查找并删除那些 CCs
和标签 "DCC"
(只是 CC,不是它的内容)。如您所知,我在 VB 方面有 no/limited 经验,非常感谢我可以 copy/paste 编写的脚本。
我在 Word 2007 中使用富文本抄送。
Private Sub DeleteCCByTag_Alternative(ccTag As String)
Dim cc As ContentControl
Set cc = ThisDocument.SelectContentControlsByTag(ccTag).Item(1)
With cc
.LockContentControl = False
.LockContents = False
.Range.Delete 'to delete CC content
.Delete (False)
End With
End Sub
好吧,我想出了一种方法来做到这一点....不是最漂亮的代码,但我相信有更好的方法来做到这一点。但是,以我极其有限的 VB 知识,以下内容可以满足我的需求:
Sub DeleteCCByTag()
Dim oThisdoc As Word.Document
Dim oCC As ContentControl
Dim oCCs As ContentControls
Set oThisdoc = ActiveDocument
Set oCCs = oThisdoc.SelectContentControlsByTag("DCC")
For Each oCC In oCCs
If oCCs.Count > 0 Then
oCC.Delete False
End If
Next
End Sub
我在SO上阅读了How to find and disable a content control by tag问题的答案(为了方便起见,下面是代码)。就我而言,我需要删除带有 SPECIFIC 标签的内容控件 (CC)。
例如,在文档中的 150 个 CCs
中,我只需要查找并删除那些 CCs
和标签 "DCC"
(只是 CC,不是它的内容)。如您所知,我在 VB 方面有 no/limited 经验,非常感谢我可以 copy/paste 编写的脚本。
我在 Word 2007 中使用富文本抄送。
Private Sub DeleteCCByTag_Alternative(ccTag As String)
Dim cc As ContentControl
Set cc = ThisDocument.SelectContentControlsByTag(ccTag).Item(1)
With cc
.LockContentControl = False
.LockContents = False
.Range.Delete 'to delete CC content
.Delete (False)
End With
End Sub
好吧,我想出了一种方法来做到这一点....不是最漂亮的代码,但我相信有更好的方法来做到这一点。但是,以我极其有限的 VB 知识,以下内容可以满足我的需求:
Sub DeleteCCByTag()
Dim oThisdoc As Word.Document
Dim oCC As ContentControl
Dim oCCs As ContentControls
Set oThisdoc = ActiveDocument
Set oCCs = oThisdoc.SelectContentControlsByTag("DCC")
For Each oCC In oCCs
If oCCs.Count > 0 Then
oCC.Delete False
End If
Next
End Sub