Comment : parcourir les éléments trouvés dans les documents par programmation
La classe Find possède une propriété Found, laquelle retourne la valeur true chaque fois qu'un élément recherché est détecté.Vous pouvez parcourir toutes les instances trouvées dans une Range à l'aide de la méthode Execute.
S'applique à : Les informations contenues dans cette rubrique s'appliquent aux projets de niveau document et de niveau application pour Word 2013 et Word 2010. Pour en savoir plus, consultez Fonctionnalités disponibles par type d'application et de projet Office.
Pour parcourir les éléments trouvés
Déclarez un objet Range.
L'exemple de code suivant peut être utilisé dans une personnalisation au niveau du document.
Dim rng As Word.Range = Me.Content
Word.Range rng = this.Content;
L'exemple de code suivant peut être utilisé dans un complément d'application.Cet exemple utilise le document actif.
Dim rng As Word.Range = Me.Application.ActiveDocument.Content
Word.Document document = this.Application.ActiveDocument; Word.Range rng = document.Content;
Utilisez la propriété Found dans une boucle pour rechercher toutes les occurrences de la chaîne dans le document, et incrémentez de 1 une variable de type entier chaque fois que la chaîne est détectée.
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); }
Affichez le nombre de fois que la chaîne a été trouvée dans un message.
MessageBox.Show("Strings found: " & intFound.ToString())
MessageBox.Show("Strings found: " + intFound.ToString());
Les exemples suivants illustrent la méthode complète.
Exemple de personnalisation au niveau du document
Pour parcourir les éléments d'une personnalisation au niveau du document
L'exemple suivant affiche le code complet correspondant à une personnalisation au niveau du document.Pour utiliser ce code, exécutez-le dans votre projet à partir de la classe ThisDocument.
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()); }
Exemple de complément d'application
Pour parcourir les éléments d'un complément d'application
L'exemple suivant affiche le code complet correspondant à un complément d'application.Pour utiliser ce code, exécutez-le dans votre projet à partir de la classe ThisAddIn.
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()); }
Voir aussi
Tâches
Comment : rechercher et remplacer du texte dans les documents par programmation
Comment : définir les options de recherche dans Word par programmation
Comment : définir et sélectionner des plages dans les documents par programmation
Comment : restaurer des sélections après des recherches par programmation