pribush
Попробуйте такой макрос:
Код: Sub selectWords()
'*********************
'Выделяем в текущем параграфе:
' слова, содержащие нечетное количество букв, красным цветом
' слова, содержащие четное количество букв, синим цветом
'@wordexpert.ru, 2009
'*********************
Dim oWrd As Range
Dim parazit As String
Dim i As Long
parazit = ",.;:!?""'|/*+-=()[]{}_`~%^@" 'символы-паразиты
For Each oWrd In ActiveDocument.Paragraphs(1).Range.Words
If (InStr(parazit, oWrd.Characters(1)) = 0) And (oWrd <> Chr(13)) Then
oWrd.Select
'удаляем пробелы справа от диапазона, если они есть
With Selection
If Right(.Range, 1) = Chr(32) Then
.MoveLeft unit:=wdCharacter, Count:=1, Extend:=wdExtend
Set oWrd = .Range
End If
End With
'определяем количество символов в словах и их четность или нечетность
If Len(RTrim(oWrd)) Mod 2 = 0 Then
oWrd.HighlightColorIndex = wdBlue
Else
oWrd.HighlightColorIndex = wdRed
End If
End If
Next oWrd
End Sub
Попробуйте такой макрос:
Код: Sub selectWords()
'*********************
'Выделяем в текущем параграфе:
' слова, содержащие нечетное количество букв, красным цветом
' слова, содержащие четное количество букв, синим цветом
'@wordexpert.ru, 2009
'*********************
Dim oWrd As Range
Dim parazit As String
Dim i As Long
parazit = ",.;:!?""'|/*+-=()[]{}_`~%^@" 'символы-паразиты
For Each oWrd In ActiveDocument.Paragraphs(1).Range.Words
If (InStr(parazit, oWrd.Characters(1)) = 0) And (oWrd <> Chr(13)) Then
oWrd.Select
'удаляем пробелы справа от диапазона, если они есть
With Selection
If Right(.Range, 1) = Chr(32) Then
.MoveLeft unit:=wdCharacter, Count:=1, Extend:=wdExtend
Set oWrd = .Range
End If
End With
'определяем количество символов в словах и их четность или нечетность
If Len(RTrim(oWrd)) Mod 2 = 0 Then
oWrd.HighlightColorIndex = wdBlue
Else
oWrd.HighlightColorIndex = wdRed
End If
End If
Next oWrd
End Sub