Статьи из блога
Макрос изменения цвета заглавных букв в тексте
На форуме ru-board.com интересовались, как написать макрос, который бы в выделенной области менял цвет всех заглавных букв текста на красный, а строчных на черный.
Вот небольшой макрос, который решает этот вопрос:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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 |
Выделите текст и примените этот макрос.
Рубрика: Вопрос-Ответ, Макросы
Метки: макросы | регистр
Просмотров: 23429
Подписаться на комментарии по RSS
Версия для печати
Метки: макросы | регистр
Просмотров: 23429
Подписаться на комментарии по RSS
Версия для печати
Еще записи по вопросам использования Microsoft Word:
- 10 вопросов и ответов по редактору Word (1 часть)
- 3 способа очистки списка недавно открытых документов
- Word 2007: добавляем свою вкладку и свои команды
- Word 2007: полотно, рисунки, линии
- Word 2007: смена формата сохранения файла
- Word 97 - решение проблемы с отображением символов на линейке
- Абзац с цветным фоном
- Автоматизация текстового набора в Word
- Автоматическая запись макроса
- Автоматическая нумерация билетов
- Автоматическая расстановка переносов
- Автоматическое обновление полей при открытии документа
- Автоматическое сохранение документа при его закрытии
- Автотекст с последовательной нумерацией
- Белый текст на синем фоне в Word 2007
- Быстрая смена ориентации страниц документа
- Быстрое перемещение между открытыми документами Word
- Быстрое создание нового документа на основе шаблона
- Быстрый ввод текста с помощью команды =rand()
- Ввод повторяющихся фрагментов текста в Word 2007
- Ввод часто повторяющихся фрагментов текста
- Вертикальное выравнивание текста
- Возможно ли запретить копирование текста из документа Word?
- Вопрос о работе с графиками (диаграммами) в Word
- Вопросы и ответы о гиперссылках в редакторе Word
Комментариев: 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 и получил зеленый цвет в первой ячейке.
ActiveDocument.Tables(1).Cell(1,1).Range.Font.Color=wdColorBrightGreen
Не могу удержаться, чтобы не предъявить на суд свой макрос. В отличие от предыдущих он работает намного быстрее за счет использования поиска и замены.
'Изменение цвета букв в зависимости от регистра.
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