Статьи из блога
Статьи из блога
Поиск и подсвечивание одинаковых слов в документе
Метки: word xp | макросы | поиск и замена | форматирование
Вторник, 9 декабря 2008 г.
Просмотров: 5208
Подписаться на комментарии по RSS
Версия для печати
Вопрос от Александра:
Не могли бы вы подсказать. можно ли в Word XP сделать так, чтобы при двойном клике на любом слове в тексте, слова, похожие на него, высвечивались бы по всему документу. А потом, чтобы при очередном двойном клике все обратно бы гасло? Мне приходится достаточно много работать с текстом, править стилистику и подобной функции очень очень не хватает. Приходится постоянно лезть в поиск, менять его настройки и каждый раз прописывать нужное слово, бегая затем по всему документу. Очень неудобно...
Александр, увы, по двойному клику можно выделить только текущее слово, но никак не совершить дополнительные действия с текстом.
Возможно, вам подойдет следующий макрос, позволяющий искать в тексте документа выделенное слово и подсвечивать найденные вхождения текущим цветом. То есть, вы выделяете интересующее вас слово и запускаете макрос (например, с помощью кнопки на панели инструментов). Макрос раскрасит текущим цветом все найденные слова.
К сожалению, просто выделить найденные слова редактор с помощью VBA не позволяет (по-крайней мере, специалисты так прокомментировали). Существуют определенные ограничения...
Вот код макроса:
Sub selectWord() 'Подсвечивание цветом найденных слов Dim rTmp As Range Set rTmp = ActiveDocument.Range With rTmp.Find .Text = Selection.Text .Replacement.Text = "" .Replacement.Highlight = True .Execute Replace:=wdReplaceAll End With End Sub
Неудобство этого макроса в том, что он подсвечивает цветом найденные слова. И для того, чтобы убрать цветовое выделение, нужно либо выделить все и убрать выделение цветом (кнопка на панели инструментов), либо использовать похожий макрос:
Sub unSelectWord()
'Снятие выделение цветом
With Selection.Find
.ClearFormatting
.Highlight = True
.Replacement.ClearFormatting
.Replacement.Highlight = False
.Text = ""
.Replacement.Text = ""
.Wrap = wdFindContinue
.Format = True
.Execute Replace:=wdReplaceAll
End With
End Sub
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:

Поиск
Рубрики
Подписка
Читают
Обсуждают
страницы
сайты
статистика
Комментариев: 4
убрать цветовое выделение можно проще
Есть одна идея, которая позволит решить задачу
Нужно создать новый стиль.
И присвоить стиль всем найденным словам
А потом выделить все вхождения в этот стиль
Попробуйте утилиту NotePad++ если совсем невмоготу.
Она прездназначена для редактирования программного кода и там функция подсветки реализована именно в том виде, как вы описали. Правда, с остальными возможностями ворда там беда
Очень дельные макросы, этого достаточно. Спасибо знатокам.