Condividi tramite


Procedura: scorrere in ciclo gli elementi trovati 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.

La classe Find dispone di una proprietà Found che restituisce true ogni volta che viene trovato un elemento di cui è stata effettuata la ricerca. È possibile scorrere in ciclo tutte le istanze trovate in un oggetto Range utilizzando il metodo Execute.

Per scorrere in ciclo gli elementi trovati

  1. Dichiarare un oggetto Range.

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

    Dim rng As Word.Range = Me.Content
    
    Word.Range rng = this.Content; 
    

    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.Content
    
    Word.Document document = this.Application.ActiveDocument;
    Word.Range rng = document.Content;
    
  2. Utilizzare la proprietà Found in un ciclo per ricercare tutte le ricorrenze della stringa nel documento e incrementare di 1 una variabile di tipo integer ogni volta che viene trovata la stringa.

    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);
    } 
    
  3. Visualizzare il numero di occorrenze trovate della stringa in una finestra di messaggio.

    MessageBox.Show("Strings found: " & intFound.ToString())
    
    MessageBox.Show("Strings found: " + intFound.ToString()); 
    

Negli esempi seguenti viene illustrato il metodo completo.

Esempio di personalizzazione a livello di documento

Per scorrere in ciclo gli elementi di una personalizzazione a livello di documento

  • Nell'esempio seguente viene illustrato il codice completo di una personalizzazione a livello di documento. Per utilizzare questo codice è necessario eseguirlo dalla classe ThisDocument del progetto.

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

Esempio di componente aggiuntivo a livello di applicazione

Per scorrere in ciclo gli elementi di un componente aggiuntivo a livello di applicazione

  • Nell'esempio seguente viene illustrato il codice completo di un componente aggiuntivo a livello di applicazione. Per utilizzare questo codice è necessario eseguirlo dalla classe ThisAddIn del progetto.

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

Vedere anche

Attività

Procedura: cercare testo nei documenti

Procedura: impostare le opzioni di ricerca in Word

Procedura: definire e selezionare intervalli nei documenti

Procedura: recuperare le selezioni dopo le ricerche

Concetti

Informazioni sui parametri facoltativi nelle soluzioni Office