Comment : rechercher du texte dans les documents
Mise à jour : novembre 2007
S'applique à |
---|
Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions de Microsoft Office spécifiés. Type de projet
Version de Microsoft Office
Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet. |
L'objet Find est membre des objets Selection et Range que vous pouvez utiliser indifféremment pour rechercher du texte dans des documents Microsoft Office Word. La commande Replace est une extension de la commande Find. Pour plus d'informations sur le remplacement de texte dans des documents, consultez Comment : rechercher et remplacer du texte dans les documents.
Utilisation d'un objet Selection
Lorsque vous utilisez un objet Selection pour rechercher du texte, les critères de recherche que vous spécifiez ne sont appliqués qu'au texte sélectionné. Si Selection est un point d'insertion, la recherche s'effectue dans le document. Lorsque l'élément correspondant aux critères de recherche est trouvé, il est automatiquement sélectionné.
Notez que les critères Find sont cumulatifs, ce qui signifie qu'ils sont ajoutés aux critères de recherche précédents. Avant la recherche, effacez la mise en forme des recherches précédentes à l'aide de la méthode ClearFormatting.
Pour rechercher du texte à l'aide d'un objet Selection
Assignez une chaîne de recherche à une variable.
Dim findText As String = "find me"
object findText = "find me";
Effacez la mise en forme des recherches précédentes.
Application.Selection.Find.ClearFormatting()
Application.Selection.Find.ClearFormatting();
Exécutez la recherche et affichez un message avec les résultats.
If Application.Selection.Find.Execute(findText) = True Then MessageBox.Show("Text found.") Else MessageBox.Show("The text could not be located.") End If
if (Application.Selection.Find.Execute(ref findText, 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("Text found."); } else { MessageBox.Show("The text could not be located."); }
L'exemple suivant illustre la méthode complète.
Private Sub SelectionFind()
Dim findText As String = "find me"
Application.Selection.Find.ClearFormatting()
If Application.Selection.Find.Execute(findText) = True Then
MessageBox.Show("Text found.")
Else
MessageBox.Show("The text could not be located.")
End If
End Sub
private void SelectionFind()
{
object findText = "find me";
Application.Selection.Find.ClearFormatting();
if (Application.Selection.Find.Execute(ref findText,
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("Text found.");
}
else
{
MessageBox.Show("The text could not be located.");
}
}
Utilisation d'un objet Range
L'utilisation d'un objet Range permet de rechercher du texte sans rien afficher dans l'interface utilisateur. L'objet Find retourne True si du texte correspondant aux critères de recherche est trouvé et False si ce n'est pas le cas. Il redéfinit l'objet Range pour qu'il corresponde aux critères de recherche si le texte est trouvé.
Pour rechercher du texte à l'aide d'un objet Range
Définissez un objet Range constitué du deuxième paragraphe du document.
L'exemple de code suivant peut être utilisé dans une personnalisation au niveau du document.
Dim rng As Word.Range = Me.Paragraphs(2).Range
Word.Range rng = this.Paragraphs[2].Range;
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.Paragraphs(2).Range
Word.Document document = this.Application.ActiveDocument; Word.Range rng = document.Paragraphs[2].Range;
À l'aide de la propriété Find de l'objet Range, effacez tout d'abord les éventuelles options de mise en forme existantes, puis recherchez la chaîne find me.
rng.Find.ClearFormatting() If rng.Find.Execute(findText) Then
rng.Find.ClearFormatting(); if (rng.Find.Execute(ref findText, 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 les résultats de la recherche dans un message, puis sélectionnez l'objet Range pour le rendre visible.
MessageBox.Show("Text found.") Else MessageBox.Show("Text not found.") End If rng.Select()
MessageBox.Show("Text found."); } else { MessageBox.Show("Text not found."); } rng.Select();
Si la recherche échoue, le deuxième paragraphe est sélectionné ; si elle réussit, les critères de la recherche sont affichés.
L'exemple suivant affiche le code complet correspondant à une personnalisation au niveau du document. Pour utiliser cet exemple, exécutez le code dans votre projet à partir de la classe ThisDocument.
Private Sub RangeFind()
Dim findText As String = "find me"
Dim rng As Word.Range = Me.Paragraphs(2).Range
rng.Find.ClearFormatting()
If rng.Find.Execute(findText) Then
MessageBox.Show("Text found.")
Else
MessageBox.Show("Text not found.")
End If
rng.Select()
End Sub
private void RangeFind()
{
object findText = "find me";
Word.Range rng = this.Paragraphs[2].Range;
rng.Find.ClearFormatting();
if (rng.Find.Execute(ref findText,
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("Text found.");
}
else
{
MessageBox.Show("Text not found.");
}
rng.Select();
}
L'exemple suivant affiche le code complet correspondant à un complément d'application. Pour utiliser cet exemple, exécutez le code à partir de la classe ThisAddIn de votre projet.
Private Sub RangeFind()
Dim findText As Object = "find me"
Dim rng As Word.Range = Me.Application.ActiveDocument.Paragraphs(2).Range
rng.Find.ClearFormatting()
If rng.Find.Execute(findText) Then
MessageBox.Show("Text found.")
Else
MessageBox.Show("Text not found.")
End If
rng.Select()
End Sub
private void RangeFind()
{
object findText = "find me";
Word.Document document = this.Application.ActiveDocument;
Word.Range rng = document.Paragraphs[2].Range;
rng.Find.ClearFormatting();
if (rng.Find.Execute(ref findText,
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("Text found.");
}
else
{
MessageBox.Show("Text not found.");
}
rng.Select();
}
Voir aussi
Tâches
Comment : rechercher et remplacer du texte dans les documents
Comment : définir les options de recherche dans Word
Comment : parcourir les éléments trouvés dans les documents
Comment : définir et sélectionner des plages dans les documents
Comment : restaurer des sélections après des recherches
Concepts
Fonctionnement des paramètres optionnels dans les solutions Office