Дата: Вторник, 09.02.2010, 08:23:26 | Сообщение # 1
Шатай-Балтай
Группа: Старожилы
Сообщений: 1827
Статус: Offline
В инете нашёл вот такой код макроса для Ворда. Он отмечает мусор в тексте:
Code
Sub Анализ() ' Макрос записан 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))) 'MsgBox "Слово № " & i & slovo 'Красным цветом было If slovo = "был" Or slovo = "была" Or slovo = "были" Or slovo = "было" Then 'MsgBox "Слово № " & i & slovo 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 'MsgBox "Слово № " & i & slovo '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 End Sub
У меня вопрос для знающих людей, как его приспособить для Ворда 2007?
Дата: Воскресенье, 16.05.2010, 01:22:28 | Сообщение # 3
Шатай-Балтай
Группа: Старожилы
Сообщений: 1827
Статус: Offline
На Ворде 2003 вот этот код макроса у меня работает:
Code
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. Заменяя в коде русские слова-сорняки, можно настроить макрос под себя.