有没有一种方法或宏可以删除MS Word中的所有内容控件?

4
我需要在当前文档中删除所有内容控制器(包括锁定和未锁定的),但不删除任何文本。我搜索并找到了一个宏来完成此操作,但我认为它不能正常工作。
以下是该宏的链接:Word VBA to delete Content Controls with specific Tags 是否有可能实现这个功能?
编辑: 我尝试了下面的代码。它将删除带有文本内容的内容控制器。我只需要删除内容控制器。
Sub Test()
Dim objCC As ContentControl
Do While ActiveDocument.ContentControls.Count > 0
For Each objCC In ActiveDocument.ContentControls
objCC.Delete True
Next
Loop
End Sub

2
它为什么不能正常工作? - Cindy Meister
1
循环遍历ActiveDocument.ContentControls并删除每个项目。 - Florent B.
@ Cindy Meister:不正常工作意味着在运行宏代码后我没有看到文档中的任何更改。我已经尝试从该文档中删除内容控制器。下载 - Thilina
@ Florent B:谢谢,你能给我提供一个带有示例代码的答案吗? - Thilina
4个回答

14

我能够在Word 2013中无需使用宏程序删除所有内容控件,步骤如下:

  1. 在“开发人员”菜单中选择“设计模式”。
  2. 如果没有看到任何内容控件,请向下滚动直到找到一个。
  3. 按Ctrl+A键选择整个文档。
  4. 右键点击一个可见的内容控件。
  5. 在上下文菜单中,选择“删除内容控件”。

我不知道它是否适用于所有类型的内容控件。


5
将文档保存为旧版 .doc 格式也会删除任何内容控件,只保留显示的内容。 - macropod
1
谢谢@macropod。我疯了,试图弄清楚为什么Word表现不正常。 - Robert

7
我已经通过自己的方式找到了答案 :)
Public Sub Test()

  Dim oRng As Range
  Dim CC   As ContentControl
  Dim LC   As Integer
  Dim LRCC As Integer
  Dim LTCC As Integer
  Dim LE   As Boolean

'Remove all content controls
Set oRng = ActiveDocument.Content
LTCC = LTCC + oRng.ContentControls.Count
For LC = oRng.ContentControls.Count To 1 Step -1

Set CC = oRng.ContentControls(LC)
If CC.LockContentControl = True Then
    CC.LockContentControl = False
End If
CC.Delete
If Not LE Then
    LRCC = LRCC + 1
    End If
    LE = False
Next
End Sub

这对某些人很有帮助。

2

感谢您的回答,正是我所需要的。最终我使用了以下代码:

Sub ContentControlRemoval()
'
'Remove all content controls
Set oRng = ActiveDocument.Content
LTCC = LTCC + oRng.ContentControls.Count
For LC = oRng.ContentControls.Count To 1 Step -1

Set CC = oRng.ContentControls(LC)
If CC.LockContentControl = True Then
    CC.LockContentControl = False
End If
CC.Delete
If Not LE Then
    LRCC = LRCC + 1
    End If
    LE = False
Next
End Sub

0
@macropod的回答在最新版本的Word中仍然有效,并且对非程序员来说更容易。我在旧版本的Word中使用“另存为”功能,然后再使用另一个“另存为”功能恢复到我的当前Word版本。它确实会询问我是否知道我正在保存为Open XML格式,我选择了是。

你的回答可以通过提供更多支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人能够确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接