Есть необходимость удалить все поля ввода в колонтитулах. В теле документа я удаляю их так:
Dim objCC As ContentControl
Do While ActiveDocument.ContentControls.Count > 0
For Each objCC In ActiveDocument.ContentControls
objCC.Delete False
Next
Loop
При это текст с поля ввода остается на месте. А вот в колонтитулах поля ввода вообще никак не затрагиваются. Подскажите, пожалуйста, как оптимизировать код, чтобы и в колонтитулах удалялись эти поля.
Удалять нужно, двигаясь от последнего элемента к первому, иначе логика не понятна, а в некоторых случаях и не удаляется.
Макрос
Sub Макрос()
Dim раздел As Section, колонт As HeaderFooter
Dim i As Long
' Удаление контролов в тексте файла.
For i = ActiveDocument.ContentControls.Count To 1 Step -1
ActiveDocument.ContentControls(i).Delete
Next i
' Удаление контролов в колонтитулах.
For Each раздел In ActiveDocument.Sections
' Удаленик контролов в верхних колонтитулах.
For Each колонт In раздел.Headers
For i = колонт.Range.ContentControls.Count To 1 Step -1
колонт.Range.ContentControls(i).Delete
Next i
Next колонт
' Удаленик контролов в нижних колонтитулах.
For Each колонт In раздел.Footers
For i = колонт.Range.ContentControls.Count To 1 Step -1
колонт.Range.ContentControls(i).Delete
Next i
Next колонт
Next раздел
' Сообщение.
MsgBox "Готово.", vbInformation
End Sub
Супер, спасибо большое, макрос работает. Все удалил, текст оставил.