Программное поиск и замена текста в документах
Объект Find является членом объектов Selection и Range, каждый из которых можно использовать для поиска текста в документах Microsoft Office Word. Команда замены является расширением команды поиска.
С помощью объекта Find можно выполнять операцию перебора документа Microsoft Office Word и поиска конкретного текста, форматирования или стиля, а свойство Replacement можно использовать для замены всех найденных элементов.
Область применения. Сведения в этом разделе относятся к проектам уровня документа и проектам надстроек VSTO для Word. Дополнительные сведения см. в разделе "Функции", доступные по Приложение Office ликации и типу проекта.
Использование объекта Selection
При использовании объекта Selection для поиска текста все заданные условия применяются только для поиска текущего выделенного текста. Если точкой вставки является Selection, то поиск выполняется по документу. Если будет найден элемент, соответствующий условиям поиска, он будет автоматически выделен.
Следует отметить, что условия Find являются накопительными. Это означает, что условия добавляются к предыдущим условиям поиска. Для сброса форматирования из предыдущих операций поиска перед выполнением нового поиска используйте метод ClearFormatting.
Поиск текста с помощью объекта Selection
Назначьте переменной строку поиска.
Сбросьте форматирование из предыдущих операций поиска.
Выполните поиск и отобразите окно сообщения с результатами.
if (Application.Selection.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { MessageBox.Show("Text found."); } else { MessageBox.Show("The text could not be located."); }
В следующем примере показан полный метод.
private void SelectionFind() { object findText = "find me"; Application.Selection.Find.ClearFormatting(); if (Application.Selection.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { MessageBox.Show("Text found."); } else { MessageBox.Show("The text could not be located."); } }
Использование объекта Range
Объект Range позволяет искать текст, ничего не отображая в пользовательском интерфейсе. Объект Find возвращает значение True, если текст найден, соответствующий условиям поиска, и False, если он не указан. Он также переопределяет объект Range, чтобы он соответствовал условиям поиска при обнаружении текста.
Поиск текста с помощью объекта Range
Определите объект Range, состоящий из второго абзаца в документе.
Следующий пример кода можно использовать в настройке на уровне документа.
Следующий пример кода можно использовать в надстройке VSTO. В этом примере используется активный документ.
Find Используя свойство Range объекта, сначала снимите все существующие параметры форматирования, а затем найдите строку.
Отобразите результаты поиска в окне сообщения и выберите Range, чтобы сделать его видимым.
Если поиск заканчивается неудачно, выбирается второй абзац. При успешном выполнении поиска отображаются условия поиска.
В следующем примере показан полный код для настройки на уровне документа. Чтобы использовать этот пример, запустите код из класса
ThisDocument
в своем проекте.private void RangeFind() { object findText = "find me"; Word.Range rng = this.Paragraphs[2].Range; rng.Find.ClearFormatting(); if (rng.Find.Execute(ref findText, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)) { MessageBox.Show("Text found."); } else { MessageBox.Show("Text not found."); } rng.Select(); }
В следующем примере показан полный код для надстройки VSTO. Чтобы использовать этот пример, запустите код из класса ThisAddIn
в своем проекте.
private void RangeFind()
{
object findText = "find me";
Word.Document document = this.Application.ActiveDocument;
Word.Range rng = document.Paragraphs[2].Range;
rng.Find.ClearFormatting();
if (rng.Find.Execute(ref findText,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing))
{
MessageBox.Show("Text found.");
}
else
{
MessageBox.Show("Text not found.");
}
rng.Select();
}
Поиск и замена текста в документах
Следующий код выполняет поиск по текущему выбору и заменяет все вхождения строки , найдя меня строкой Found.
Поиск и замена текста в документах
Добавьте следующий пример кода в класс
ThisDocument
илиThisAddIn
в своем проекте.private void SearchReplace() { Word.Find findObject = Application.Selection.Find; findObject.ClearFormatting(); findObject.Text = "find me"; findObject.Replacement.ClearFormatting(); findObject.Replacement.Text = "Found"; object replaceAll = Word.WdReplace.wdReplaceAll; findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref replaceAll, ref missing, ref missing, ref missing, ref missing); }
Класс Find имеет метод ClearFormatting, а класс Replacement также имеет свой собственный метод ClearFormatting. При выполнении операций поиска и замены необходимо использовать метод ClearFormatting обоих объектов. Если его использовать только на объекте Find, то при замене текста можно получить непредвиденные результаты.
Для замены каждого найденного элемента используйте метод Execute объекта Find. Чтобы указать, какие элементы следует заменить, используйте параметр Replace . Этот параметр может принимать одно из следующих значений WdReplace:
wdReplaceAll заменяет все найденные элементы.
wdReplaceNone не заменяет никакие найденные элементы.
wdReplaceOne заменяет первый найденный элемент.
Связанный контент
- Практическое руководство. Программное определение параметров поиска в Word
- Практическое руководство. Программный цикл по найденным элементам в документах
- Практическое руководство. Программное определение и выбор диапазонов в документах
- Практическое руководство. Программное восстановление выделенных элементов после поиска
- Необязательные параметры в решениях Office