Тема: Помогите усовершенствовать мой макрос DeleteComent
Добрый день.
В документах ХТМЛ часто есть блоки с комментариями. Для сокращения текста я их удаляю. Вот пример текста для правки:
<!-- текст комментария -->
текст
…
текст
<!-- текст комментария -->
текст
…
текст
<!-- текст комментария -->
текст
…
текст
<!-- текст комментария -->
А вот код макроса для удаления одного комментария:
Sub DeleteComent()
' Макрос удаляет блок <!-- ... -->
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Dim MyRange As Range, rStart&, rEnd&
Set MyRange = ActiveDocument.Content
'Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
With Selection.Find
.Text = "<!--"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.MoveLeft Unit:=wdCharacter, Count:=1
a = Selection.Start
With Selection.Find
.Text = "-->"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.MoveRight Unit:=wdCharacter, Count:=1
b = Selection.End
If b > a Then
ActiveDocument.Range(a, b).Select
Selection.Delete Unit:=wdCharacter, Count:=1
Else
Selection.HomeKey Unit:=wdStory
End If
End Sub
Помогите его усовершенствовать следующим образом – макрос должен удалять все комментарии в тексте. После этого снова возвращаться в начало документа.
А вообще, как организовать функцию, которая в цикле выполняла другую функцию наподобие DeleteComent от начала до конца документа?
Я попытался таким образом:
Sub Проба()
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Do While Selection.Find.Execute
Call DeleteComent
Loop
Selection.HomeKey Unit:=wdStory
End Sub
Но макрос работает только тогда, когда я хоть один раз выполню макрос DeleteComent.
Спасибо.