Тема: Макрос для удаления тегов
Есть rdf файл, пытаюсь в Ворде почистить его от всех вхождений тегов. Язык не знаю, поэтому делаю сначала запись, потом смотрю, что там у меня записалось, и пытаюсь потом что-то слепить.
Кусок файла прикрепила. Надо убрать все (примерно пока, может еще что встречается дальше):
<NS1:clipping RDF:about="rdf:#$ЛЮБОЕ КОЛ_ВО СИМВОЛОВ" NS1:name="ЛЮБОЕ КОЛ_СИМВОЛОВ">
<NS1:text>
</NS1:text>
</NS1:clipping>
<RDF:Seq RDF:about="rdf:#$PiUSz3"> здесь и далее после решетки ЛКС
<RDF:li RDF:resource="rdf:#$RiUSz3"/>
<RDF:li RDF:resource="rdf:#$SiUSz3"/>
<RDF:li RDF:resource="rdf:#$TiUSz3"/>
</RDF:Seq><NS1:folder RDF:about="rdf:#$PiUSz3"
NS1:hassubfolders="false"/>
Мой макрос:
Sub Макрос1()
'
' Макрос1 Макрос
'
'
Selection.WholeStory
With Selection.ParagraphFormat
.LeftIndent = CentimetersToPoints(0)
.RightIndent = CentimetersToPoints(0)
.SpaceBefore = 0
.SpaceBeforeAuto = False
.SpaceAfter = 0
.SpaceAfterAuto = False
.LineSpacingRule = wdLineSpaceSingle
.Alignment = wdAlignParagraphJustify
.WidowControl = False
.KeepWithNext = False
.KeepTogether = False
.PageBreakBefore = False
.NoLineNumber = False
.Hyphenation = True
.FirstLineIndent = CentimetersToPoints(1.25)
.OutlineLevel = wdOutlineLevelBodyText
.CharacterUnitLeftIndent = 0
.CharacterUnitRightIndent = 0
.CharacterUnitFirstLineIndent = 0
.LineUnitBefore = 0
.LineUnitAfter = 0
.MirrorIndents = False
End With
Selection.Font.Name = "Times New Roman"
Selection.Font.Size = 12
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "<NS1:clipping RDF:about=""*"" NS1:name=""*""> "
.Replacement.Text = " "
.Text = "RDF:RDF"
.Replacement.Text = " "
.Text = "<NS1:text>"
.Replacement.Text = " "
.Text = "</NS1:text>"
.Replacement.Text = " "
.Text = "</NS1:clipping>"
.Replacement.Text = " "
.Text = "<RDF:Seq RDF:about=""*""> "
.Replacement.Text = " "
.Text = "<RDF:li RDF:resource=""*""/> "
.Replacement.Text = " "
.Text = "</RDF:Seq>"
.Replacement.Text = " "
.Text = "<NS1:folder RDF:about=""*"" "
.Replacement.Text = " "
.Text = "NS1:hassubfolders=""false""/> "
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
End Sub
В общем, * у меня не работает никак, голова уже кругом, я вокруг нее что только не ставила - кавычек 50 штук, скобки квадратные, пробелы туда-сюда, подстан. зн. включала-выключала... Не заменяет и все тут. Но если так сделать:
Sub Макрос2()
'
' Макрос2 Макрос
'
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "<NS1:clipping RDF:about=""rdf:#$*"" "
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
...почему-то удаляет. А стоит дописать NS1:name ... и все, стоп, ошибки всякие. Разницы я не вижу между первым и вторым макросом, оформлено все вроде так же. Помогите!
Просьба подсказать именно таким макросом, хочется понимать просто. Я тут за два часа перелопатила кучу инфы, в частности встречалось:
Public Sub Videl()
For a = 1 To ActiveDocument.ComputeStatistics(wdStatisticLines)
Selection.Find.ClearFormatting
With Selection.Find
.Text = "книга «*»"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute
With Selection
.MoveStart Unit:=wdCharacter, Count:=6
.Font.Bold = True
End With
Next
End Sub
- найти все вхождения после книги любых символов и сделать их жирными, но к себе никак притянуть не могу, уже сложно.
И, если можно (или новую темку создать?), как проверить документ на дубли - например, 30 символов и более уже были ранее в документе в таком же порядке - удалить. Макросом.