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
Versione Microsoft Office
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
Assegnare una stringa di ricerca a una variabile.
Dim findText As String = "find me"
object findText = "find me";
Annullare la formattazione delle ricerche precedenti.
Application.Selection.Find.ClearFormatting()
Application.Selection.Find.ClearFormatting();
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
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;
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)) {
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