Condividi tramite


Procedura: cercare testo nei documenti

Aggiornamento: novembre 2007

Si applica a

Le informazioni contenute in questo argomento riguardano solo i progetti Visual Studio Tools per Office e le versioni di Microsoft Office specificati.

Tipo di progetto

  • Progetti a livello di documento

  • Progetti a livello di applicazione

Versione Microsoft Office

  • Word 2003

  • Word 2007

Per ulteriori informazioni, vedere la classe Funzionalità disponibili in base ai tipi di progetto e applicazione.

Poiché l'oggetto Find è un membro degli oggetti Selection e Range, è possibile utilizzare uno di questi due oggetti per cercare del testo nei documenti di Microsoft Office Word. Il comando di sostituzione rappresenta un'estensione del comando di ricerca. Per informazioni sulla sostituzione di testo nei documenti, vedere Procedura: cercare e sostituire testo nei documenti.

Utilizzo di un oggetto Selection

Quando si utilizza un oggetto Selection per la ricerca di testo, i criteri di ricerca specificati vengono applicati solo al testo correntemente selezionato. Se l'oggetto Selection corrisponde a un punto di inserimento, la ricerca verrà eseguita nel documento. Quando viene trovato, l'elemento corrispondente ai criteri di ricerca viene automaticamente selezionato.

È importante osservare che i criteri di Find sono cumulativi e vengono pertanto aggiunti ai criteri di ricerca precedenti. Annullare la formattazione delle ricerche precedenti utilizzando il metodo ClearFormatting prima della ricerca.

Per cercare testo mediante un oggetto Selection

  1. Assegnare una stringa di ricerca a una variabile.

    Dim findText As String = "find me"
    
    object findText = "find me";
    
  2. Annullare la formattazione delle ricerche precedenti.

    Application.Selection.Find.ClearFormatting()
    
    Application.Selection.Find.ClearFormatting();
    
  3. Eseguire la ricerca e visualizzare una finestra di messaggio con i risultati.

    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.");
    } 
    

Nell'esempio riportato di seguito viene illustrato il metodo completo.

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.");
    } 
}

Utilizzo di un oggetto Range

La ricerca di testo mediante un oggetto Range consente di cercare del testo senza alcuna visualizzazione nell'interfaccia utente. L'oggetto Find restituisce True se viene trovato testo corrispondente ai criteri di ricerca, e False in caso contrario. Se viene trovato il testo, verrà inoltre ridefinito l'oggetto Range in base ai criteri di ricerca.

Per cercare testo mediante un oggetto Range

  1. Definire un oggetto Range costituito dal secondo paragrafo nel documento.

    L'esempio di codice seguente può essere utilizzato in una personalizzazione a livello di documento.

    Dim rng As Word.Range = Me.Paragraphs(2).Range
    
    Word.Range rng = this.Paragraphs[2].Range; 
    

    L'esempio di codice seguente può essere utilizzato in un componente aggiuntivo a livello di applicazione. In questo esempio viene utilizzato il documento attivo.

    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. Utilizzare la proprietà Find dell'oggetto Range, annullando innanzitutto le opzioni di formattazione eventualmente esistenti e cercando quindi la stringa 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. Visualizzare i risultati della ricerca in una finestra di messaggio e selezionare l'oggetto Range in modo da renderlo visibile.

        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(); 
    

    Se la ricerca ha esito negativo, verrà selezionato il secondo paragrafo. Se ha esito positivo, verranno visualizzati i criteri di ricerca.

Nel seguente esempio viene illustrato il codice completo per una personalizzazione a livello di documento. Per utilizzare questo esempio, eseguirlo dalla classe ThisDocument nel progetto.

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(); 
}

Di seguito viene illustrato il codice completo per un componente aggiuntivo a livello di applicazione. Per utilizzare questo esempio, eseguirlo dalla classe ThisAddIn nel progetto.

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();
}

Vedere anche

Attività

Procedura: cercare e sostituire testo nei documenti

Procedura: impostare le opzioni di ricerca in Word

Procedura: scorrere in ciclo gli elementi trovati nei documenti

Procedura: definire e selezionare intervalli nei documenti

Procedura: recuperare le selezioni dopo le ricerche

Concetti

Informazioni sui parametri facoltativi nelle soluzioni Office