Partager via


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

  • Projets au niveau du document

  • Projets au niveau de l'application

Version de Microsoft Office

  • Word 2003

  • Word 2007

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

  1. Assignez une chaîne de recherche à une variable.

    Dim findText As String = "find me"
    
    object findText = "find me";
    
  2. Effacez la mise en forme des recherches précédentes.

    Application.Selection.Find.ClearFormatting()
    
    Application.Selection.Find.ClearFormatting();
    
  3. 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

  1. 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;
    
  2. À 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)) 
    { 
    
  3. 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