The Find class has a Found property, which returns true whenever a searched-for item is found. You can loop through all instances found in a Range using the Execute method.
Applies to: The information in this topic applies to document-level projects and VSTO Add-in projects for Word. For more information, see Features available by Office application and project type.
To loop through found items
Declare a Range object.
The following code example can be used in a document-level customization.
Word.Range rng = this.Content;
Dim rng As Word.Range = Me.Content
The following code example can be used in a VSTO Add-in. This example uses the active document.
Word.Document document = this.Application.ActiveDocument;
Word.Range rng = document.Content;
Dim rng As Word.Range = Me.Application.ActiveDocument.Content
Use the Found property in a loop to search for all occurrences of the string in the document, and increment an integer variable by 1 each time the string is found.
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);
}
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
Display the number of times the string was found in a message box.
MessageBox.Show("Strings found: " + intFound.ToString());
MessageBox.Show("Strings found: " & intFound.ToString())
The following examples show the complete method.
Document-level customization example
To loop through items in a document-level customization
The following example shows the complete code for a document-level customization. To use this code, run it from the ThisDocument
class in your project.
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());
}
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
To loop through items in a VSTO Add-in
The following example shows the complete code for a VSTO Add-in. To use this code, run it from the ThisAddIn
class in your project.
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());
}
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