Share via


Programmgesteuertes Durchlaufen gefundener Elemente in Dokumenten

Die Find -Klasse hat eine Found -Eigenschaft, die jedes Mal true zurückgibt, wenn ein gesuchtes Element gefunden wurde. Sie können alle in einem Range -Objekt gefundenen Instanzen mit der Execute -Methode durchlaufen.

Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene und VSTO-Add-In-Projekte für Word. Weitere Informationen finden Sie unter features available by Office-App lication and project type.

So durchlaufen Sie gefundene Elemente

  1. Deklarieren Sie ein Range -Objekt.

    Das folgende Codebeispiel kann in einer Anpassung auf Dokumentebene verwendet werden.

    Word.Range rng = this.Content;
    

    Das folgende Codebeispiel kann in einem VSTO-Add-In verwendet werden. In diesem Beispiel wird das aktive Dokument verwendet.

    Word.Document document = this.Application.ActiveDocument;
    Word.Range rng = document.Content;
    
  2. Verwenden Sie die Found -Eigenschaft in einer Schleife, um nach allen Vorkommen der Zeichenfolge im Dokument zu suchen, und erhöhen Sie eine ganzzahlige Variable jedes Mal um 1, wenn die Zeichenfolge gefunden wurde.

    rng.Find.ClearFormatting(); 
    rng.Find.Forward = true; 
    rng.Find.Text = "find me"; 
    
    rng.Find.Execute(
        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, ref missing);
    
    while (rng.Find.Found) 
    { 
        intFound++;
        rng.Find.Execute(
            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, ref missing);
    }
    
  3. Zeigen Sie in einem Meldungsfeld an, wie oft die Zeichenfolge gefunden wurde.

    MessageBox.Show("Strings found: " + intFound.ToString());
    

    Die folgenden Beispiele zeigen die vollständige Methode.

Anpassungsbeispiel auf Dokumentebene

So durchlaufen Sie Elemente in einer Anpassung auf Dokumentebene

  1. Das folgende Beispiel zeigt den vollständigen Code für eine Anpassung auf Dokumentebene. Wenn Sie diesen Code verwenden möchten, führen Sie ihn von der ThisDocument -Klasse im Projekt aus.

    private void FindLoop() 
    { 
        int intFound = 0; 
        Word.Range rng = this.Content; 
    
        rng.Find.ClearFormatting(); 
        rng.Find.Forward = true; 
        rng.Find.Text = "find me"; 
    
        rng.Find.Execute(
            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, ref missing);
    
        while (rng.Find.Found) 
        { 
            intFound++;
            rng.Find.Execute(
                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, ref missing);
        } 
    
        MessageBox.Show("Strings found: " + intFound.ToString()); 
    }
    

Beispiel für ein VSTO-Add-In

So durchlaufen Sie Elemente in einem VSTO-Add-In

  1. Das folgende Beispiel zeigt den vollständigen Code für ein VSTO-Add-In. Wenn Sie diesen Code verwenden möchten, führen Sie ihn von der ThisAddIn -Klasse im Projekt aus.

    private void FindLoop()
    {
        int intFound = 0;
        Word.Document document = this.Application.ActiveDocument;
        Word.Range rng = document.Content;
    
        rng.Find.ClearFormatting();
        rng.Find.Forward = true;
        rng.Find.Text = "find me";
    
        rng.Find.Execute(
            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, ref missing);
    
        while (rng.Find.Found)
        {
            intFound++;
            rng.Find.Execute(
                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, ref missing);
        }
    
        MessageBox.Show("Strings found: " + intFound.ToString());
    }