[мой верхний пост был обрезан, возможно из-за того, что я не использовал code-тэги ... Полный текст моего поста ниже]
Здравствуйте,
я пытаюсь создать макрос, который бы находил и удалял текст с черной заливкой. Вот, что у меня пока получилось:
Sub FIND_AND_DEL_BLACK()
Selection.Find.ClearFormatting
With Selection.Find.ParagraphFormat
.Shading.BackgroundPatternColor = &HD05068
End With
With Selection.Find
.Wrap = wdFindContinue
End With
While Selection.Find.Execute = True
Selection.Find.Execute
Selection.Delete
Wend
End Sub
Он прекрасно справляется с удалением любых абзацев с окрашенной заливкой кроме того случая когда заливка черная. Любые формулировки черного цвета - 0, 000000, RGB(0,0,0), &H0 ... - приводят к тому, что макро удаляет абзацы белого цвета.
Ниже приведен XML код примерного одного из абзацев, который мне необходимо удалить:
<w:p w:rsidR="00FE728A" w:rsidRPr="00FE728A" w:rsidRDefault="00FE728A" w:rsidP="00FE728A"><w:pPr><w:shd w:val="clear" w:color="auto" w:fill="000000"/><w:spacing w:after="0" w:line="570" w:lineRule="atLeast"/><w:rPr><w:rFonts w:ascii="scala-sans-sc-offc-pro--" w:eastAsia="Times New Roman" w:hAnsi="scala-sans-sc-offc-pro--" w:cs="Times New Roman"/><w:b/><w:bCs/><w:sz w:val="24"/><w:szCs w:val="24"/><w:lang w:val="en" w:eastAsia="en-GB"/></w:rPr></w:pPr><w:r w:rsidRPr="00FE728A"><w:rPr><w:rFonts w:ascii="scala-sans-sc-offc-pro--" w:eastAsia="Times New Roman" w:hAnsi="scala-sans-sc-offc-pro--" w:cs="Times New Roman"/><w:b/><w:bCs/><w:sz w:val="24"/><w:szCs w:val="24"/><w:lang w:val="en" w:eastAsia="en-GB"/></w:rPr><w:t xml:space="preserve">WORDS IN BLACK SHADING</w:t></w:r></w:p>
В экспертных статьях по теме, как например эта или эта, пишут, что полный цветовой HEX код - 32-битный, а значит 8-ми, а не 6-значный и его полное HEX и INT выражения другие и возможно по этой причине макро не распознает его. Если вы знаете, какое макро следует написать, чтобы находить и удалять вышеозначенные абзацы, поделитесь мыслями.