Hledání a nahrazení textu v dokumentech prostřednictvím kódu programu
Objekt Find je členem objektů Selection i Range objektů a můžete použít jeden z nich k vyhledání textu v systém Microsoft Office wordových dokumentech. Příkaz nahradit je rozšíření příkazu find.
Pomocí objektu Find můžete procházet systém Microsoft Office wordovým dokumentem a hledat konkrétní text, formátování nebo styl a tuto vlastnost použít Replacement k nahrazení nalezených položek.
Platí pro: Informace v tomto tématu platí pro projekty na úrovni dokumentu a projekty doplňků VSTO pro Word. Další informace naleznete v tématu Funkce dostupné aplikace Office lication a typu projektu.
Použití objektu Výběru
Když k vyhledání textu použijete Selection objekt, použijí se všechna zadaná kritéria hledání pouze pro aktuálně vybraný text. Selection Pokud je kurzorem, vyhledá se dokument. Když se najde položka, která odpovídá kritériím hledání, vybere se automaticky.
Je důležité si uvědomit, že Find kritéria jsou kumulativní, což znamená, že kritéria jsou přidána do předchozích kritérií hledání. Pomocí metody před hledáním ClearFormatting vymažte formátování z předchozích hledání.
Vyhledání textu pomocí objektu výběru
Přiřaďte hledaný řetězec proměnné.
Vymažte formátování z předchozích hledání.
Spusťte hledání a zobrazte okno se zprávou s výsledky.
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 úplnou metodu.
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."); } }
Použití objektu Range
Range Použití objektu umožňuje hledat text bez zobrazení čehokoli v uživatelském rozhraní. Objekt Find vrátí hodnotu True , pokud je nalezen text, který odpovídá kritériím hledání, a False , pokud ne. Objekt také předefinuje Range tak, aby odpovídal kritériím hledání, pokud se najde text.
Vyhledání textu pomocí objektu Range
Range Definujte objekt, který se skládá z druhého odstavce v dokumentu.
Následující příklad kódu lze použít v přizpůsobení na úrovni dokumentu.
Následující příklad kódu lze použít v doplňku VSTO. Tento příklad používá aktivní dokument.
Find Pomocí vlastnosti objektu Range nejprve vymažte všechny existující možnosti formátování a pak vyhledejte řetězec najít mě.
Zobrazte výsledky hledání v poli se zprávou a vyberte Range , aby byl viditelný.
Pokud hledání selže, je vybrán druhý odstavec; pokud bude úspěšný, zobrazí se kritéria hledání.
Následující příklad ukazuje úplný kód pro přizpůsobení na úrovni dokumentu. Pokud chcete tento příklad použít, spusťte kód z
ThisDocument
třídy v projektu.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 ukazuje úplný kód doplňku VSTO. Pokud chcete tento příklad použít, spusťte kód z ThisAddIn
třídy v projektu.
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 nahrazení textu v dokumentech
Následující kód vyhledá aktuální výběr a nahradí všechny výskyty řetězce nalezeného řetězcem.
Vyhledání a nahrazení textu v dokumentech
Do projektu nebo
ThisAddIn
třídy přidejteThisDocument
následující ukázkový kód.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); }
Třída Find má metodu ClearFormatting a třída má také vlastní ClearFormatting metoduReplacement. Při provádění operací find-and-replace je nutné použít ClearFormatting metody obou objektů. Pokud ho použijete pouze u objektu Find , může dojít k neočekáženým výsledkům v náhradním textu.
Execute Použijte metodu objektu Find k nahrazení každé nalezené položky. Chcete-li určit, které položky chcete nahradit, použijte parametr Replace . Tento parametr může být jedna z následujících WdReplace hodnot:
wdReplaceAll nahradí všechny nalezené položky.
wdReplaceNone nenahrazuje žádnou z nalezených položek.
wdReplaceOne nahradí první nalezenou položku.
Související obsah
- Postupy: Nastavení možností hledání ve Wordu 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ěrů po hledání prostřednictvím kódu programu
- Volitelné parametry v řešeních Office