Compartir a través de


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

  • Proyectos de nivel de documento

  • Proyectos de nivel de aplicación

Versión de Microsoft Office

  • Word 2003

  • Word 2007

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

  1. 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;
    
  2. 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);
    } 
    
  3. 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