На Ворде 2003 вот этот код макроса у меня работает:
Код
Sub Sornjaki() ' ' Sornjaki Макрос ' Макрос записан 30.11.01 Ольга Денисова' tex = Selection p = Selection.Words.Count MsgBox "There are " & p & " words."
For i = 1 To p
slovo = LCase(Trim(Selection.Words(i)))
'Красным цветом "было" ' If slovo = "был" Or slovo = "была" Or slovo = "были" Or slovo = "было" Then With Selection.Words(i) .Font.Color = wdColorRed End With End If
'Синим цветом - замена и контроль частоты' If slovo = "может" Or slovo = "только" Or slovo = "момент" Or slovo = "слишком" Or slovo = "наверняка" Or slovo = "лишь" Or slovo = "наконец" Then With Selection.Words(i) .Font.Color = wdColorLightBlue End With End If
'Зелённым цветом - удалить' If Left(slovo, 3) = "сво" Or Left(slovo, 8) = "собствен" Or slovo = "все" Or slovo = "уже" Or slovo = "же" Or slovo = "даже" Or slovo = "внезапно" Or slovo = "неожиданно" Or slovo = "вдруг" Or slovo = "еще" Then With Selection.Words(i) .Font.Color = wdColorBrightGreen End With End If
'Светло-зелёный - личные местоимения' If Left(slovo, 2) = "он" Or slovo = "его" Or slovo = "ему" Or slovo = "им" Or slovo = "нем" Or slovo = "ей" Or slovo = "ее" Or slovo = "ею" Or slovo = "их" Or slovo = "них" Or slovo = "ими" Then With Selection.Words(i) .Font.Color = wdColorLightGreen End With End If
'Оранж. цветом "что" ' If slovo = "что" Then With Selection.Words(i) .Font.Color = wdColorOrange End With End If
'Светло-оранж. цветом "чтобы" ' If slovo = "чтобы" Or slovo = "чтоб" Then With Selection.Words(i) .Font.Color = wdColorLightOrange End With End If
'Розовым цветом "как" ' If slovo = "как" Then With Selection.Words(i) .Font.Color = wdColorPink End With End If
'Сиреневым цветом "так" ' If slovo = "так" Then With Selection.Words(i) .Font.Color = wdColorLavender End With End If
'Сиреневым цветом "это" ' If Left(slovo, 3) = "это" Or Left(slovo, 3) = "эти" Or slovo = "эта" Or slovo = "эту" Then With Selection.Words(i) .Font.Color = wdColorTurquoise End With End If
'Серым цветом - вводные слова' If slovo = "видимо" Or slovo = "действительно" Or slovo = "однако" Or slovo = "впрочем" Or slovo = "собственно" Then With Selection.Words(i) .Font.Color = wdColorGray40 End With End If
If sl & slovo = "-то" Then With Selection.Words(i - 2) .Italic = True .Font.Color = wdColorLightBlue End With
With Selection.Words(i - 1) .Italic = True .Font.Color = wdColorLightBlue End With
With Selection.Words(i) .Italic = True .Font.Color = wdColorLightBlue End With End If
If slovo = "-" Then sl = "-" Else sl = "" End If
Next i MsgBox "Все сорняки найдены" End Sub
1. При установки, у меня, Визуальный редактор не смог прочитать русские буквы и расставил знаки вопроса, пришлось в ручную копировать русские слова.
2. Немного поправил код, а то останавливался на каждом слове, когда обрабатываешь большие тексты - это очень не удобно и желательно обрабатывать маленькими кусками.
3. Как макрос запустить.
а.) Выделяете часть нужного для редактирования текста. б.) Нажимаете "Сервис", дальше "Макрос", если у вас установлено несколько, то выбираете "sornjaki" (нужный вам макрос) и нажимаете "выполнить". в.) Откроется окошко с количеством обрабатываемых слов - нажимаете "ОК"Макрос запущен. г.) По завершении работы макроса появится сообщение "Все сорняки найдены"
4. Если не хотите много ждать, то не обрабатывайте текст большими кусками. Работает он медленно.5. Заменяя в коде русские слова-сорняки, можно настроить макрос под себя.
PS В Ворде 2007, этот код так же работает. У меня по крайней мере.