Porady: Programowane wyszukiwanie i zastępowanie tekstu w dokumentach
Find Obiektu jest członkiem obu Selection i Range obiektów, a można użyć dowolnego z wyszukiwania tekstu w dokumentach programu Microsoft Office Word.Polecenie Zamień jest rozszerzeniem polecenia Znajdź.
Użyj Find obiektu w pętli do dokumentu programu Microsoft Office Word i wyszukiwanie konkretnego tekstu, formatowania lub stylu, a następnie użyj Replacement właściwość, aby zamienić elementy znalezione.
Zastosowanie: Informacje przedstawione w tym temacie mają zastosowanie do projektów na poziomie dokumentu i aplikacji obsługiwanych w programach Word 2013 i Word 2010. Aby uzyskać więcej informacji, zobacz Funkcje dostępne w aplikacjach pakietu Office i typ projektu.
Za pomocą obiektu Selection
Podczas korzystania z Selection obiekt, aby znaleźć tekst, każde wyszukiwanie, należy określić kryteria są stosowane tylko wobec aktualnie zaznaczonego tekstu.Jeśli Selection jest punkt wstawiania, a następnie dokument będzie przeszukiwana.Gdy element zostanie znaleziony, który spełnia kryteria wyszukiwania, jest automatycznie zaznaczone.
Ważne jest, aby pamiętać, że Find kryteria kumulują się, co oznacza, że kryteria są dodawane do poprzednie kryteria wyszukiwania.Wyczyść formatowanie poprzednich wyników wyszukiwania za pomocą ClearFormatting metody przed wyszukiwania.
Aby znaleźć tekst za pomocą obiektu Selection
Ciąg wyszukiwania można przypisać do zmiennej.
Dim findText As String = "find me"
object findText = "find me";
Wyczyść formatowanie poprzednich wyników wyszukiwania.
Application.Selection.Find.ClearFormatting()
Application.Selection.Find.ClearFormatting();
Wykonać wyszukiwanie i wyświetlić okno komunikatu z wyników.
If Application.Selection.Find.Execute(findText) = True Then MessageBox.Show("Text found.") Else MessageBox.Show("The text could not be located.") End If
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."); }
Poniższy przykład przedstawia metodę kompletny.
Private Sub SelectionFind()
Dim findText As String = "find me"
Application.Selection.Find.ClearFormatting()
If Application.Selection.Find.Execute(findText) = True Then
MessageBox.Show("Text found.")
Else
MessageBox.Show("The text could not be located.")
End If
End Sub
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.");
}
}
Za pomocą obiektu Range
Za pomocą Range obiektu umożliwia wyszukiwanie tekstu bez wyświetlania nic w interfejsie użytkownika.Find Zwraca obiekt True Jeśli tekst zostanie znaleziony, który pasuje do kryteriów wyszukiwania i False , jeśli tak nie jest.Również nowo Range obiektu do pasujące do kryteriów wyszukiwania, jeśli zostanie znaleziony tekst.
Aby znaleźć tekst za pomocą obiektu Range
Definiowanie Range obiekt, który składa się z drugiego akapitu w dokumencie.
Poniższy przykład kodu służy dostosowywania poziomie dokumentu.
Dim rng As Word.Range = Me.Paragraphs(2).Range
Word.Range rng = this.Paragraphs[2].Range;
Poniższy przykład kodu, można w poziomie aplikacji dodatek.W tym przykładzie użyto aktywnego dokumentu.
Dim rng As Word.Range = Me.Application.ActiveDocument.Paragraphs(2).Range
Word.Document document = this.Application.ActiveDocument; Word.Range rng = document.Paragraphs[2].Range;
Za pomocą Find właściwość Range obiektu, najpierw wyczyść wszystkie istniejące opcje formatowania, a następnie wyszukać ciąg mnie znaleźć.
rng.Find.ClearFormatting() If rng.Find.Execute(findText) Then
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)) {
Wyświetlanie wyników wyszukiwania w oknie komunikatu, a następnie wybierz Range aby stał się widoczny.
MessageBox.Show("Text found.") Else MessageBox.Show("Text not found.") End If rng.Select()
MessageBox.Show("Text found."); } else { MessageBox.Show("Text not found."); } rng.Select();
Jeśli wyszukiwanie zakończy się niepowodzeniem, jest zaznaczony akapit drugi; Jeśli się powiedzie, kryteria wyszukiwania są wyświetlane.
Kompletny kod dla dostosowania poziomu dokumentu można znaleźć w poniższym przykładzie.Aby wykorzystać ten przykład, należy uruchomić kod z ThisDocument klasy do projektu.
Private Sub RangeFind()
Dim findText As String = "find me"
Dim rng As Word.Range = Me.Paragraphs(2).Range
rng.Find.ClearFormatting()
If rng.Find.Execute(findText) Then
MessageBox.Show("Text found.")
Else
MessageBox.Show("Text not found.")
End If
rng.Select()
End Sub
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();
}
Kompletny kod dla dodatku poziomie aplikacji można znaleźć w poniższym przykładzie.Aby wykorzystać ten przykład, należy uruchomić kod z ThisAddIn klasy do projektu.
Private Sub RangeFind()
Dim findText As Object = "find me"
Dim rng As Word.Range = Me.Application.ActiveDocument.Paragraphs(2).Range
rng.Find.ClearFormatting()
If rng.Find.Execute(findText) Then
MessageBox.Show("Text found.")
Else
MessageBox.Show("Text not found.")
End If
rng.Select()
End Sub
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();
}
Wyszukiwanie i zastępowanie tekstu w dokumentach
Poniższy kod przeszukuje aktualnie zaznaczony obszar i zamienia wszystkie wystąpienia ciągu mnie znaleźć z ciągiem znalezione.
Aby wyszukać i zamienić tekst w dokumentach
Dodaj poniższy przykład kodu do ThisDocument lub ThisAddIn klasy do projektu.
Private Sub SearchReplace() Dim FindObject As Word.Find = Application.Selection.Find With FindObject .ClearFormatting() .Text = "find me" .Replacement.ClearFormatting() .Replacement.Text = "Found" .Execute(Replace:=Word.WdReplace.wdReplaceAll) End With End Sub
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 Klasa ma ClearFormatting metoda i Replacement klasy również ma swój własny ClearFormatting metoda.Podczas przeprowadzania operacji znajdowania i zamieniania, należy użyć ClearFormatting metoda obu obiektów.Jeśli używasz tylko na Find obiektu, może uzyskać niespodziewane wyniki w tekście.
Użycie Execute metoda Find obiekt, aby zastąpić każdego znalezionego elementu.Aby określić elementy, które należy zastąpić, Replace parametru.Ten parametr może być jedną z następujących WdReplace wartości:
wdReplaceAllzastępuje wszystkie znalezione elementy.
wdReplaceNoneżaden z elementów znalezionych zastępuje.
wdReplaceOnezastępuje pierwszego znalezionego elementu.
Zobacz też
Zadania
Porady: Programowane ustawianie opcji wyszukiwania w programie Word
Porady: Programowane przechodzenie w pętli poprzez znalezione elementy w dokumentach
Porady: Programowane definiowanie i zaznaczanie zakresów w dokumentach
Porady: Programowane przywracanie zaznaczenia po wyszukiwaniu