Статьи из блога
Статьи из блога
Макрос изменения цвета заглавных букв в тексте
Рубрика: Вопрос-Ответ, Макросы
Метки: макросы | регистр
Понедельник, 10 декабря 2007 г.
Просмотров: 3688
Подписаться на комментарии по RSS
Версия для печати
Метки: макросы | регистр
Понедельник, 10 декабря 2007 г.
Просмотров: 3688
Подписаться на комментарии по RSS
Версия для печати
На форуме ru-board.com интересовались, как написать макрос, который бы в выделенной области менял цвет всех заглавных букв текста на красный, а строчных на черный.
Вот небольшой макрос, который решает этот вопрос:
Sub colorCase3()
'Применение к первым заглавным буквам красного цвета, а к строчным - черного цвета
Dim fChar As Range
Dim selText As Range
Set selText = Selection.Range
If Selection.Type = wdSelectionIP Then
MsgBox "Не выделен текст"
Else
For Each fChar In selText.Words
fChar.Font.Color = wdColorBlack
If fChar.Characters.First Like "[A-ЯA-Z]" Then
fChar.Characters.First.Font.Color = wdColorRed
End If
Next fChar
End If
End Sub
Выделите текст и примените этот макрос.

Поиск
Рубрики
Подписка
Читают
Обсуждают
Форум
страницы
сайты
статистика
Комментариев: 6
Sub colorAllBig() Dim fChar As Range Dim seltext As Range Dim i As Long Set seltext = Selection.Range If Selection.Type = wdSelectionIP Then MsgBox "А текст какой?" Else For Each fChar In seltext.Words For i = 1 To fChar.Characters.Count If fChar.Characters(i).Case = wdUpperCase Then fChar.Characters(i).Font.Color = wdColorRed Else fChar.Characters(i).Font.Color = wdColorBlack End If Next i Next fChar End If End SubОльга, спасибо. Все отлично работает.
Благодарю вас. Пригодится в работе.
а если необходимо изменить цвет текста в таблице ( к примеру .Tables(1) ) как это реализовать
пробовал .Tables(1).cell(1,1).range.font.color не работает. кто знает как это делается ?
Почему не работает? Все работает. Только что эту строку набрал в окне Immediate и получил зеленый цвет в первой ячейке.
Не могу удержаться, чтобы не предъявить на суд свой макрос. В отличие от предыдущих он работает намного быстрее за счет использования поиска и замены.
'Изменение цвета букв в зависимости от регистра. Sub RepaintLetters() If Selection.Type = wdNoSelection Then Exit Sub With Selection.Range.Find .ClearFormatting: .Replacement.ClearFormatting .Text = "[a-zа-яё]{1;}": .MatchWildcards = True .Replacement.Text = "^&": .Replacement.Font.Color = wdColorAutomatic .Execute Replace:=wdReplaceAll End With With Selection.Range.Find .ClearFormatting: .Replacement.ClearFormatting .Text = "[A-ZА-ЯЁ]{1;}": .MatchWildcards = True .Replacement.Text = "^&": .Replacement.Font.Color = wdColorAutomatic .Execute Replace:=wdReplaceAll End With End Sub