Поделиться через


Поиск и замена текста или форматирования

Поиск и замена предоставляется объектами Find и Replacement . Объект Find доступен из объектов Selection и Range . Действие поиска немного отличается в зависимости от того, из объекта Selection или Range вы обращаетесь к объекту Find.

Поиск и выделение текста

Если доступ к объекту Find осуществляется из объекта Selection , выделение изменяется при обнаружении условий поиска. В следующем примере выбирается следующее вхождение слова "Hello". Если конец документа достигается до того, как будет найдено слово "Hello", поиск останавливается.

With Selection.Find 
 .Forward = True 
 .Wrap = wdFindStop 
 .Text = "Hello" 
 .Execute 
End With

Объект Find содержит свойства, связанные с параметрами в диалоговом окне Поиск и замена . Можно задать отдельные свойства объекта Find или использовать аргументы с методом Execute , как показано в следующем примере.

Selection.Find.Execute FindText:="Hello", _ 
 Forward:=True, Wrap:=wdFindStop

Поиск текста без изменения выделенного фрагмента

Если доступ к объекту Find осуществляется из объекта Range , выделение не изменяется, но диапазон переопределен при обнаружении условий поиска. В следующем примере показано, как найти первое вхождение слова "blue" в активном документе. Если операция поиска выполнена успешно, диапазон переопределен, а к слову "blue" применяется полужирное форматирование.

With ActiveDocument.Content.Find 
 .Text = "blue" 
 .Forward = True 
 .Execute 
 If .Found = True Then .Parent.Bold = True 
End With

В следующем примере выполняется тот же результат, что и в предыдущем примере, используя аргументы метода Execute .

Set myRange = ActiveDocument.Content 
myRange.Find.Execute FindText:="blue", Forward:=True 
If myRange.Find.Found = True Then myRange.Bold = True

Использование объекта Replacement

Объект Replace представляет критерии замены для операции поиска и замены. Свойства и методы объекта Replace соответствуют параметрам в диалоговом окне Найти и заменить (меню Правка ).

Объект Replacement доступен в объекте Find . В следующем примере все вхождения слова "hi" заменяются на "hello". Выделение изменяется при обнаружении условий поиска, так как доступ к объекту Find осуществляется из объекта Selection .

With Selection.Find 
 .ClearFormatting 
 .Text = "hi" 
 .Replacement.ClearFormatting 
 .Replacement.Text = "hello" 
 .Execute Replace:=wdReplaceAll, Forward:=True, _ 
 Wrap:=wdFindContinue 
End With

В следующем примере в активном документе удаляется полужирное форматирование. Свойство Bold имеет значение True для объекта Find и False для объекта Replacement . Чтобы найти и заменить форматирование, задайте для текста для поиска и замены пустые строки (""), а для аргумента Format метода Execute задайте значение True. Выбор остается неизменным, так как доступ к объекту Find осуществляется из объекта Range (свойство Content возвращает объект Range ).

With ActiveDocument.Content.Find 
 .ClearFormatting 
 .Font.Bold = True 
 With .Replacement 
 .ClearFormatting 
 .Font.Bold = False 
 End With 
 .Execute FindText:="", ReplaceWith:="", _ 
 Format:=True, Replace:=wdReplaceAll 
End With

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.