Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Se aplica a: La información de este tema se aplica a los proyectos de nivel de documento y los proyectos de nivel de aplicación para Word 2013 y Word 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.
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.ContentWord.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.ContentWord.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() Looprng.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 Subprivate 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 Subprivate 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 y reemplazar texto en documentos mediante programación
Cómo: Establecer opciones de búsqueda en Word mediante programación
Cómo: Definir y seleccionar intervalos en documentos mediante programación
Cómo: Restaurar selecciones después de realizar búsquedas mediante programación