Postupy: Hledání a nahrazování textu v dokumentech prostřednictvím kódu programu
Find Objekt je členem i Selection a Range objekty a můžete použít kterýkoli z nich vyhledávání textu v dokumentech aplikace Microsoft Office Word.Příkaz nahradit je rozšíření příkazu Najít.
Použít Find procházet dokument Microsoft Office Word a vyhledat určitý text, formátování nebo styl objektu a použít Replacement vlastnost nahradit libovolný nalezených položek.
Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni dokumentu i na úrovni aplikace v aplikacích Word 2013 a Word 2010. Další informace naleznete v tématu Funkce aplikace Office a typ projektu.
Pomocí výběru objektu
Při použití Selection objekt najít text žádné hledání zadáte kritéria mají být použity pouze aktuálně vybraný text.Pokud Selection je prohledána dokumentu textový kurzor.Pokud je položka nalezena, který odpovídá kritériím hledání, je automaticky zaškrtnuto.
Je důležité si uvědomit, že Find kritérií se kumulují, což znamená, že kritéria jsou přidány do předchozí kritéria hledání.Vymazat formátování z předchozích hledání pomocí ClearFormatting metoda před hledání.
Vyhledání textu pomocí výběru objektu
Vyhledávací řetězec přiřadíte proměnné.
Dim findText As String = "find me"
object findText = "find me";
Vymažte formátování z předchozích hledání.
Application.Selection.Find.ClearFormatting()
Application.Selection.Find.ClearFormatting();
Spustit hledání a zobrazení okna se zprávou s výsledky.
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."); }
Následující příklad ukazuje kompletní metoda.
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.");
}
}
Pomocí objektu rozsah
Použití Range objekt umožňuje hledat text bez nic zobrazování v uživatelském rozhraní.Find Vrátí objekt True Pokud je nalezen text, který odpovídá kritériím hledání a False Pokud neexistuje.Také předefinuje Range objektu odpovídají kritériím vyhledávání, pokud je nalezen text.
Vyhledání textu pomocí objektu rozsah
Definovat Range objekt, který se skládá z druhého odstavce v dokumentu.
Následující příklad kódu lze v dokumentu úroveň přizpůsobení.
Dim rng As Word.Range = Me.Paragraphs(2).Range
Word.Range rng = this.Paragraphs[2].Range;
Následující příklad kódu lze použít v doplňku úrovni aplikace.Tento příklad používá aktivní dokument.
Dim rng As Word.Range = Me.Application.ActiveDocument.Paragraphs(2).Range
Word.Document document = this.Application.ActiveDocument; Word.Range rng = document.Paragraphs[2].Range;
Použití Find vlastnost Range objektu, zrušte nejprve zaškrtnutí jakékoli existující možnosti formátování a pak vyhledat řetězec mi najít.
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)) {
Zobrazit výsledky hledání v okně se zprávou a vybrat Range k viditelné.
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();
Pokud selže hledání, je vybrán druhý odstavec; Pokud uspěje, jsou zobrazeny vyhledávací kritéria.
Následující příklad zobrazuje kompletní kód pro přizpůsobení úroveň dokument.Chcete-li použít tento příklad spustit kód z ThisDocument tříd v 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();
}
Následující příklad zobrazuje kompletní kód doplněk aplikační úrovni.Chcete-li použít tento příklad spustit kód z ThisAddIn tříd v 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();
}
Hledání a nahrazování textu v dokumentech
Následující kód prohledá aktuální výběr a nahradí všechny výskyty řetězce mi najít s řetězcem nalezen.
Vyhledat a nahradit text v dokumentech
Přidejte následující kód například ThisDocument nebo ThisAddIn tříd v 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 Třída má ClearFormatting metody a Replacement třída má také vlastní ClearFormatting metoda.Při provádění operace najít a nahradit, je nutné použít ClearFormatting metoda oba objekty.Pokud používáte pouze na Find objekt náhradní text můžete získat neočekávané výsledky.
Použití Execute metoda Find -li nahradit všechny nalezené položky.Určit, které položky chcete nahradit, použijte Replace parametr.Tento parametr může být jeden z následujících WdReplace hodnoty:
wdReplaceAllnahradí všechny nalezené položky.
wdReplaceNonenahradí žádná z nalezených položek.
wdReplaceOnenahradí první nalezené položky.
Viz také
Úkoly
Postupy: Nastavování možností hledání v aplikaci Word prostřednictvím kódu programu
Postupy: Procházení nalezených položek v dokumentech prostřednictvím kódu programu
Postupy: Definování a výběr oblastí v dokumentech prostřednictvím kódu programu
Postupy: Obnovení výběru po hledání prostřednictvím kódu programu