Vba 是否有任何方法或宏删除MS Word中的所有内容控件?

Vba 是否有任何方法或宏删除MS Word中的所有内容控件?,vba,ms-word,Vba,Ms Word,我需要删除活动文档中所有锁定和解锁的内容控制器,而不删除任何文本。我已搜索并找到此宏。但我认为它不能正常工作 有可能这样做吗 编辑: 我试过下面的代码。它将删除包含文本内容的内容控制器。我只需要删除内容控制器 Sub Test() Dim objCC As ContentControl Do While ActiveDocument.ContentControls.Count > 0 For Each objCC In ActiveDocument.ContentControls objC

我需要删除活动文档中所有锁定和解锁的内容控制器,而不删除任何文本。我已搜索并找到此宏。但我认为它不能正常工作

有可能这样做吗

编辑: 我试过下面的代码。它将删除包含文本内容的内容控制器。我只需要删除内容控制器

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

我用自己的方式找到了答案:

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

这将对某人有所帮助。

我用自己的方式找到了答案:

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

这将对某人有所帮助。

谢谢你的回答,这正是我想要的。我最终使用了以下方法:

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

谢谢你的回答,这正是我想要的。我最终使用了以下方法:

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

我能够在Word 2013中删除所有内容控件,无需任何宏,如下所示:

在“开发人员”菜单上,选择“设计模式”。 如果看不到任何内容控件,请滚动至其中一个。 按Ctrl+A选择整个文档。 右键单击可见的内容控件。 在关联菜单中,单击删除内容控件。
我不知道它是否适用于所有类型的内容控件。

我能够在Word 2013中删除所有内容控件,无需任何宏,如下所示:

在“开发人员”菜单上,选择“设计模式”。 如果看不到任何内容控件,请滚动至其中一个。 按Ctrl+A选择整个文档。 右键单击可见的内容控件。 在关联菜单中,单击删除内容控件。
我不知道它是否适用于所有类型的内容控件。

它如何工作不正常?循环使用ActiveDocument.ContentControls并删除每个项目。@Cindy Meister:它工作不正常意味着在运行宏代码后,我没有看到文档中有任何更改。我已尝试从此文档中删除内容控制器。@Florent B:谢谢,你能用示例代码给我一个答案吗?它是如何工作不正常的?循环使用ActiveDocument.ContentControls并删除每个项目。@Cindy Meister:它工作不正常意味着在运行宏代码后,我没有看到文档中有任何更改。我已尝试从此文档中删除内容控制器。@Florent B:谢谢,你能给我一个带有示例代码的答案吗?以旧的.doc格式保存文档也会删除任何内容控件,只留下显示的内容。谢谢@macrood。试图弄清楚Word为何不工作,我快发疯了。以旧的.doc格式保存文档也会删除任何内容控件,只留下显示的内容。谢谢@macrood。我疯狂地想弄明白为什么Word不起作用。