Sdílet prostřednictvím


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 ve Wordu 2013 a ve Wordu 2010. Další informace najdete v tématu Dostupné funkce podle aplikací systému 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

  1. Vyhledávací řetězec přiřadíte proměnné.

    Dim findText As String = "find me"
    
    object findText = "find me";
    
  2. Vymažte formátování z předchozích hledání.

    Application.Selection.Find.ClearFormatting()
    
    Application.Selection.Find.ClearFormatting();
    
  3. 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

  1. 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;
    
  2. 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)) 
    { 
    
  3. 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

  1. 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.

  2. 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:

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

Koncepty

Volitelné parametry v řešeních pro systém Office