Recorrer en bucle mediante programación los elementos encontrados en los documentos
La clase Find tiene una propiedad Found que devuelve el valor true cada vez que se encuentra el elemento buscado. Puede recorrer todas las instancias que se encuentran en un objeto Range mediante el método Execute .
Se aplica a: la información de este tema se aplica a proyectos de nivel de documento y proyectos de complementos de VSTO para Word. Para obtener más información, consulte Características disponibles por aplicación de Office lication y tipo de proyecto.
Para recorrer los elementos encontrados
Declare un objeto Range .
El siguiente ejemplo de código se puede usar en una personalización de nivel de documento.
El siguiente ejemplo de código se puede usar en un complemento de VSTO. En este ejemplo se usa el documento activo.
Use la propiedad Found en un bucle para buscar todas las repeticiones de la cadena en el documento, e incremente en 1 una variable entera cada vez que se encuentre esa cadena.
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.
En el siguiente ejemplo se muestra el método completo.
Ejemplo de personalización de nivel de documento
Recorrer los elementos en una personalización de nivel de documento
En el siguiente ejemplo 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 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 VSTO
Para recorrer elementos en un complemento de VSTO
En el siguiente ejemplo se muestra el código completo de un complemento de VSTO. Para usar este código, ejecútelo desde la clase
ThisAddIn
del proyecto.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()); }
Contenido relacionado
- Cómo: Buscar y reemplazar rext mediante programación en documentos
- Cómo: Establecer opciones de búsqueda mediante programación en Word
- Cómo: Definir y seleccionar intervalos en documentos mediante programación
- Cómo: Restaurar selecciones después de búsquedas mediante programación
- Parámetros opcionales en soluciones de Office