Амир использует разные цвета для выделения во всех своих документах. Когда он использует «Найти и заменить» для поиска выделенного текста, он обрабатывает все цвета выделения одинаково. В частности, Амир хотел бы использовать «Найти и заменить», чтобы найти только текст, выделенный желтым цветом, игнорируя любой другой цвет выделения, используемый в документе.

Прежде чем перейти к тому, как это сделать, важно ненадолго обсудить термины. При использовании термина «цвет выделения» некоторые люди думают, что это относится к цвету, примененному к определенному тексту; нет, это не так. Выделение не меняет цвет шрифта.

Выделение выполняется с помощью инструмента «Цвет выделения текста», который доступен в группе «Шрифт» на вкладке «Главная» ленты. (См. Рис. 1.)

image

Рисунок 1. Word позволяет выделять текст разными цветами.

Когда вы используете диалоговое окно «Найти и заменить», вы можете указать, что вы хотите искать выделенный текст. (Поместите точку вставки в поле «Найти», нажмите «Формат», затем нажмите «Выделить».) Когда вы нажимаете «Найти далее», Word выбирает следующий выделенный текст независимо от цвета, используемого для выделения этого текста. Другими словами, вы не можете указать, что вы хотите найти только текст, выделенный желтым, синим, зеленым или любым другим цветом; все обрабатывается одинаково.

Нам не удалось найти надежного способа обойти это. Некоторая информация, которую мы видели, указывает на то, что Word найдет только тот цвет выделения, который указан в инструменте Цвет выделения текста, но это неверно. Другие люди указали, что если вы выберете какой-нибудь выделенный текст (который выделен цветом, который вы хотите найти)

перед отображением диалогового окна «Найти и заменить» при нажатии кнопки «Найти далее» будет обнаружен только этот цвет выделения. Это тоже неправда. Во всех случаях «Найти далее» найдет любой выделенный текст, независимо от цвета, используемого для выделения.

Единственный способ обойти это — использовать макрос для поиска. VBA позволяет определять цвет, используемый для выделения текста, поэтому этот подход будет работать. Следующий макрос использует Find и Replace для поиска, но затем проверяет, какое свойство HighlightColorIndex соответствует тому, что было найдено. Если он равен wdYellow (перечисление для желтого цвета), тогда текст выделяется и макрос закрывается.

Sub FindNextYellow()

With Selection.Find         .ClearFormatting         .Replacement.ClearFormatting         .Text = ""

.MatchWildcards = False         .Forward = True         .Wrap = wdFindContinue         .Highlight = True         Do             .Execute         Loop Until Selection.Range.HighlightColorIndex = wdYellow _           Or Not .Found         Selection.Range.Select     End With End Sub

Вы можете искать разные цвета, просто изменив перечисление wdYellow на перечисление для любого цвета, который вы хотите.

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (13552) применим к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365.