Gewusst wie: Programmgesteuertes Durchlaufen gefundener Elemente in Dokumenten
Die Find-Klasse verfügt über eine Found-Eigenschaft, die jedes Mal true zurückgibt, wenn ein gesuchtes Element gefunden wird.Sie können alle in einer Range gefundenen Instanzen durchlaufen, indem Sie die Execute-Methode verwenden.
Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokument- und auf Anwendungsebene für Word 2013 und Word 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.
So durchlaufen Sie gefundene Elemente
Deklarieren Sie ein Range-Objekt.
Das folgende Codebeispiel kann in einer Anpassung auf Dokumentebene verwendet werden.
Dim rng As Word.Range = Me.Content
Word.Range rng = this.Content;
Das folgende Codebeispiel kann in einem Add-In auf Anwendungsebene verwendet werden.In diesem Beispiel wird das aktive Dokument verwendet.
Dim rng As Word.Range = Me.Application.ActiveDocument.Content
Word.Document document = this.Application.ActiveDocument; Word.Range rng = document.Content;
Verwenden Sie die Found-Eigenschaft in einer Schleife, um nach allen Fundstellen der Zeichenfolge im Dokument zu suchen, und erhöhen Sie bei jeder Fundstelle eine ganzzahlige Variable um 1.
rng.Find.ClearFormatting() rng.Find.Forward = True rng.Find.Text = "find me" rng.Find.Execute() Do While rng.Find.Found = True intFound += 1 rng.Find.Execute() Loop
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); }
Zeigen Sie in einem Meldungsfeld an, wie oft die Zeichenfolge gefunden wurde.
MessageBox.Show("Strings found: " & intFound.ToString())
MessageBox.Show("Strings found: " + intFound.ToString());
In den folgenden Beispielen wird die vollständige Methode veranschaulicht.
Beispiel für die Anpassung auf Dokumentebene
So durchlaufen Sie Elemente in einer Anpassung auf Dokumentebene
Im folgenden Beispiel wird der vollständige Code für eine Anpassung auf Dokumentebene gezeigt.Wenn Sie diesen Code verwenden möchten, führen Sie ihn von der ThisDocument-Klasse im Projekt aus.
Private Sub FindLoop() Dim intFound As Integer = 0 Dim rng As Word.Range = Me.Content rng.Find.ClearFormatting() rng.Find.Forward = True rng.Find.Text = "find me" rng.Find.Execute() Do While rng.Find.Found = True intFound += 1 rng.Find.Execute() Loop MessageBox.Show("Strings found: " & intFound.ToString()) End Sub
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 Add-Ins auf Anwendungsebene
So durchlaufen Sie Elemente in einem Add-In auf Anwendungsebene
Im folgenden Beispiel wird der vollständige Code für ein Add-In auf Anwendungsebene gezeigt.Wenn Sie diesen Code verwenden möchten, führen Sie ihn von der ThisAddIn-Klasse im Projekt aus.
Private Sub FindLoop() Dim intFound As Integer = 0 Dim rng As Word.Range = Me.Application.ActiveDocument.Content rng.Find.ClearFormatting() rng.Find.Forward = True rng.Find.Text = "find me" rng.Find.Execute() Do While rng.Find.Found = True intFound += 1 rng.Find.Execute() Loop MessageBox.Show("Strings found: " & intFound.ToString()) End Sub
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()); }
Siehe auch
Aufgaben
Gewusst wie: Programmgesteuertes Suchen und Ersetzen von Text in Dokumenten
Gewusst wie: Programmgesteuertes Festlegen von Suchoptionen in Word
Gewusst wie: Programmgesteuertes Definieren und Markieren von Bereichen in Dokumenten
Gewusst wie: Programmgesteuertes Wiederherstellen der Auswahl nach Suchvorgängen