Gewusst wie: Durchlaufen gefundener Elemente in Dokumenten
Aktualisiert: November 2007
Betrifft |
---|
Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office. Projekttyp
Microsoft Office-Version
Weitere Informationen hierzu finden Sie unter Verfügbare Features nach Anwendung und Projekttyp. |
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.
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: Suchen nach Text in Dokumenten
Gewusst wie: Festlegen von Suchoptionen in Word
Gewusst wie: Definieren und Markieren von Bereichen in Dokumenten
Gewusst wie: Wiederherstellen der Auswahl nach Suchvorgängen