Cómo: Recorrer los elementos encontrados en documentos
Actualización: noviembre 2007
Se aplica a |
---|
La información de este tema sólo se aplica a los proyectos de Visual Studio Tools para Office y versiones de Microsoft Office especificados. Tipo de proyecto
Versión de Microsoft Office
Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto. |
La clase Find tiene una propiedad Found que devuelve el valor true cada vez que se encuentra un elemento buscado. Si desea recorrer todas las instancias que se encuentran en un objeto Range, lo puede hacer mediante el método Execute.
Para recorrer los elementos encontrados
Declare un objeto Range.
El ejemplo de código siguiente se puede usar en una personalización de nivel de documento.
Dim rng As Word.Range = Me.Content
Word.Range rng = this.Content;
El ejemplo de código siguiente se puede usar en un complemento de nivel de aplicación. En este ejemplo se usa el documento activo.
Dim rng As Word.Range = Me.Application.ActiveDocument.Content
Word.Document document = this.Application.ActiveDocument; Word.Range rng = document.Content;
Utilice la propiedad Found en un bucle para buscar todas las apariciones de la cadena en el documento e incremente en 1 una variable entera cada vez que se encuentre la cadena.
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); }
Muestre el número de veces que se encontró la cadena en un cuadro de mensaje .
MessageBox.Show("Strings found: " & intFound.ToString())
MessageBox.Show("Strings found: " + intFound.ToString());
En el siguiente ejemplo se muestra el método completo.
Ejemplo de personalización de nivel de documento
Para recorrer los elementos en una personalización de nivel de documento
En el ejemplo siguiente se muestra el código completo de una personalización de nivel de documento. Para usar este código, ejecútelo desde la clase ThisDocument del proyecto.
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()); }
Ejemplo de complemento de nivel de aplicación
Para recorrer los elementos en un complemento de nivel de aplicación
En el ejemplo siguiente se muestra el código completo de un complemento de nivel de aplicación. Para usar este código, ejecútelo desde la clase ThisAddIn del proyecto.
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()); }
Vea también
Tareas
Cómo: Buscar texto en documentos
Cómo: Establecer opciones de búsqueda en Word
Cómo: Definir y seleccionar rangos en documentos
Cómo: Restaurar selecciones después de realizar búsquedas
Conceptos
Descripción de los parámetros opcionales en las soluciones de Office