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
Versión de Microsoft Office
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
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";
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
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);
Reemplace esos caracteres por la cadena Nuevo texto.
rng.Text = " New Text "
rng.Text = "New Text";
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
Declare una variable de objeto Selection.
Dim currentSelection As Word.Selection = Application.Selection
Word.Selection currentSelection = Application.Selection;
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; }
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(); }
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(); }
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