Compartir a través de


Cómo: Insertar texto en documentos de Word

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.

Existen tres métodos principales para insertar texto en los documentos de Microsoft Office Word:

  • Insertar texto en un intervalo

  • Sustituir el texto de un intervalo por texto nuevo

  • Use el método TypeText de un objeto Selection para insertar texto en el cursor o en la selección.

    Nota:

    También puede insertar texto en controles de contenido y en marcadores. Para obtener más información, vea Controles de contenido y Bookmark (Control).

Insertar texto en un intervalo

Utilice la propiedad Text de un objeto Range para insertar texto en un documento.

Para insertar texto en un rango

  1. Especifique un intervalo al principio de un documento e inserte el texto Nuevo texto.

    El ejemplo de código siguiente se puede usar en una personalización de nivel de documento.

    Dim rng As Word.Range = Me.Range(Start:=0, End:=0)
    rng.Text = " New Text "
    
    object start = 0; 
    object end = 0; 
    
    Word.Range rng = this.Range(ref start, ref end); 
    rng.Text = "New Text"; 
    

    El ejemplo de código siguiente se puede usar en un complemento de nivel de aplicación. En este código se usa el documento activo.

    Dim rng As Word.Range = Me.Application.ActiveDocument.Range(Start:=0, End:=0)
    rng.Text = " New Text "
    
    object start = 0;
    object end = 0;
    
    Word.Range rng = this.Application.ActiveDocument.Range(
        ref start, ref end);
    rng.Text = "New Text";
    
  2. Seleccione el objeto Range, que se ha expandido de un carácter a la longitud del texto insertado.

    rng.Select()
    
    rng.Select();
    

Sustituir el texto de un rango

Si el rango especificado contiene texto, todo el texto del intervalo se reemplaza por el texto insertado.

Para sustituir el texto de un rango

  1. Cree un objeto Range compuesto por los primeros 12 caracteres en el documento.

    El ejemplo de código siguiente se puede usar en una personalización de nivel de documento.

    Dim rng As Word.Range = Me.Range(Start:=0, End:=12)
    
    object start = 0; 
    object end = 12; 
    
    Word.Range rng = this.Range(ref start, ref end); 
    

    El ejemplo de código siguiente se puede usar en un complemento de nivel de aplicación. En este código se usa el documento activo.

    Dim rng As Word.Range = Me.Application.ActiveDocument.Range(Start:=0, End:=12)
    
    object start = 0;
    object end = 12;
    
    Word.Range rng = this.Application.ActiveDocument.Range(
        ref start, ref end);
    
  2. Reemplace esos caracteres por la cadena Nuevo texto.

    rng.Text = " New Text "
    
    rng.Text = "New Text"; 
    
  3. Seleccione el rango.

    rng.Select()
    
    rng.Select();
    

Insertar texto utilizando TypeText

El método TypeText inserta el texto en la selección. TypeText se comporta de forma diferente dependiendo del conjunto de opciones del equipo del usuario. El código del procedimiento siguiente declara una variable de objeto Selection y desactiva la opción Overtype si está activada. Si la opción Overtype está activada, se sobrescribe cualquier texto situado junto al cursor.

Para insertar texto por medio del método TypeText

  1. Declare una variable de objeto Selection.

    Dim currentSelection As Word.Selection = Application.Selection
    
    Word.Selection currentSelection = Application.Selection; 
    
  2. Desactive la opción Overtype si está activada.

    If Application.Options.Overtype Then
        Application.Options.Overtype = False
    End If
    
    if (Application.Options.Overtype) 
    { 
        Application.Options.Overtype = false; 
    } 
    
  3. Compruebe si la selección actual es un punto de inserción.

    Si lo es, el código inserta una frase utilizando TypeText y, a continuación, una marca de párrafo utilizando el método TypeParagraph.

    With currentSelection
    
        ' Test to see if selection is an insertion point.
        If .Type = Word.WdSelectionType.wdSelectionIP Then
            .TypeText("Inserting at insertion point. ")
            .TypeParagraph()
    
    // Test to see if selection is an insertion point.
    if (currentSelection.Type == Word.WdSelectionType.wdSelectionIP) 
    { 
        currentSelection.TypeText("Inserting at insertion point. ");
        currentSelection.TypeParagraph(); 
    } 
    
  4. El código del bloque ElseIf comprueba si la selección es una selección normal. Si lo es, otro bloque If comprueba si la opción ReplaceSelection está activada. Si está activada, el código utiliza el método Collapse de la selección para contraer la selección a un punto de inserción en el inicio del bloque de texto seleccionado. Inserte el texto y una marca de párrafo.

    ElseIf .Type = Word.WdSelectionType.wdSelectionNormal Then
        ' Move to start of selection.
        If Application.Options.ReplaceSelection Then
            .Collapse(Direction:=Word.WdCollapseDirection.wdCollapseStart)
        End If
        .TypeText("Inserting before a text block. ")
        .TypeParagraph()
    
    else 
        if (currentSelection.Type == Word.WdSelectionType.wdSelectionNormal)
        { 
            // Move to start of selection.
            if (Application.Options.ReplaceSelection)
            { 
                object direction = Word.WdCollapseDirection.wdCollapseStart;
                currentSelection.Collapse(ref direction);
            }
            currentSelection.TypeText("Inserting before a text block. ");
            currentSelection.TypeParagraph();
        }
    
  5. Si la selección no es un punto de inserción ni un bloque de texto seleccionado, el código del bloque Else no hace nada.

    Else
        ' Do nothing.
    End If
    
    else
    {
        // Do nothing.
    }
    

También puede usar el método TypeBackspace del objeto Selection, que imita la funcionalidad de la tecla RETROCESO del teclado. No obstante, cuando se trata de insertar y manipular texto, el objeto Range ofrece más control.

En el ejemplo siguiente se muestra el código completo. Para usar este ejemplo, ejecútelo desde las clases ThisDocument o ThisAddIn del proyecto.

Friend Sub SelectionInsertText()
    Dim currentSelection As Word.Selection = Application.Selection

    ' Store the user's current Overtype selection
    Dim userOvertype As Boolean = Application.Options.Overtype

    ' Make sure Overtype is turned off.
    If Application.Options.Overtype Then
        Application.Options.Overtype = False
    End If

    With currentSelection

        ' Test to see if selection is an insertion point.
        If .Type = Word.WdSelectionType.wdSelectionIP Then
            .TypeText("Inserting at insertion point. ")
            .TypeParagraph()

        ElseIf .Type = Word.WdSelectionType.wdSelectionNormal Then
            ' Move to start of selection.
            If Application.Options.ReplaceSelection Then
                .Collapse(Direction:=Word.WdCollapseDirection.wdCollapseStart)
            End If
            .TypeText("Inserting before a text block. ")
            .TypeParagraph()

            Else
                ' Do nothing.
            End If
    End With

    ' Restore the user's Overtype selection
    Application.Options.Overtype = userOvertype
End Sub
private void SelectionInsertText() 
{ 
    Word.Selection currentSelection = Application.Selection; 

    // Store the user's current Overtype selection
    bool userOvertype = Application.Options.Overtype;

    // Make sure Overtype is turned off.
    if (Application.Options.Overtype) 
    { 
        Application.Options.Overtype = false; 
    } 

    // Test to see if selection is an insertion point.
    if (currentSelection.Type == Word.WdSelectionType.wdSelectionIP) 
    { 
        currentSelection.TypeText("Inserting at insertion point. ");
        currentSelection.TypeParagraph(); 
    } 
    else 
        if (currentSelection.Type == Word.WdSelectionType.wdSelectionNormal)
        { 
            // Move to start of selection.
            if (Application.Options.ReplaceSelection)
            { 
                object direction = Word.WdCollapseDirection.wdCollapseStart;
                currentSelection.Collapse(ref direction);
            }
            currentSelection.TypeText("Inserting before a text block. ");
            currentSelection.TypeParagraph();
        }
        else
        {
            // Do nothing.
        }

    // Restore the user's Overtype selection
    Application.Options.Overtype = userOvertype;
}

Vea también

Tareas

Cómo: Dar formato al texto en documentos

Cómo: Definir y seleccionar rangos en documentos

Cómo: Ampliar intervalos en documentos