Gewusst wie: Programmgesteuertes Einfügen von Text in Word-Dokumente
Zum Einfügen von Text in Microsoft Office Word-Dokumente bestehen grundsätzlich drei Möglichkeiten:
Einfügen von Text in einen Bereich.
Ersetzen von Text in einem Bereich.
Verwenden Sie die TypeText-Methode eines Selection-Objekts, um an der Position des Cursors bzw. der Auswahl Text einzufügen.
Hinweis |
---|
Sie können auch Text in Inhaltssteuerelemente und Lesezeichen einfügen.Weitere Informationen finden Sie unter Inhaltssteuerelemente und unter Bookmark-Steuerelement. |
Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokument- und auf Anwendungsebene für Word 2013 und Word 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.
Einfügen von Text in einen Bereich
Mit der Text-Eigenschaft eines Range-Objekts können Sie Text in ein Dokument einfügen.
So fügen Sie Text in einen Bereich ein
Geben Sie am Anfang eines Dokuments einen Bereich an, und fügen Sie den Text New Text ein.
Das folgende Codebeispiel kann in einer Anpassung auf Dokumentebene verwendet werden.
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";
Das folgende Codebeispiel kann in einem Add-In auf Anwendungsebene verwendet werden.In diesem Code wird das aktive Dokument verwendet.
Dim rng As Word.Range = Me.Application.ActiveDocument.Range(Start:=0, End:=0) rng.Text = " New Text "
Word.Range rng = this.Application.ActiveDocument.Range(0, 0); rng.Text = "New Text";
Wählen Sie das Range-Objekt aus, das von einem Zeichen auf die Länge des eingefügten Texts erweitert wurde.
rng.Select()
rng.Select();
Ersetzen von Text in einem Bereich
Wenn der angegebene Bereich Text enthält, wird der gesamte Text im Bereich durch den eingefügten Text ersetzt.
So ersetzen Sie Text in einem Bereich
Erstellen Sie ein Range-Objekt, das aus den ersten 12 Zeichen des Dokuments besteht.
Das folgende Codebeispiel kann in einer Anpassung auf Dokumentebene verwendet werden.
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);
Das folgende Codebeispiel kann in einem Add-In auf Anwendungsebene verwendet werden.In diesem Code wird das aktive Dokument verwendet.
Dim rng As Word.Range = Me.Application.ActiveDocument.Range(Start:=0, End:=12)
Word.Range rng = this.Application.ActiveDocument.Range(0, 12);
Ersetzen Sie diese Zeichen durch die Zeichenfolge New Text.
rng.Text = " New Text "
rng.Text = "New Text";
Markieren Sie den Bereich.
rng.Select()
rng.Select();
Einfügen von Text mithilfe von TypeText
Die TypeText-Methode fügt an der Markierung Text ein.TypeText verhält sich in Abhängigkeit von den auf dem Benutzercomputer festgelegten Optionen anders.Der Code in der folgenden Prozedur deklariert eine Selection-Objektvariable und deaktiviert die Overtype-Option (sofern aktiviert).Wenn die Option Overtype aktiviert ist, wird der gesamte Text neben dem Cursor überschrieben.
So fügen Sie Text mit der TypeText-Methode hinzu
Deklarieren Sie eine Selection-Objektvariable.
Dim currentSelection As Word.Selection = Application.Selection
Word.Selection currentSelection = Application.Selection;
Deaktivieren Sie die Option Overtype, sofern diese aktiviert ist.
If Application.Options.Overtype Then Application.Options.Overtype = False End If
if (Application.Options.Overtype) { Application.Options.Overtype = false; }
Testen Sie, ob es sich bei der aktuellen Markierung um eine Einfügemarke handelt.
Wenn dies der Fall ist, fügt der Code mit TypeText einen Satz und anschließend mit der TypeParagraph-Methode eine Absatzmarke ein.
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(); }
Der Code im ElseIf-Block testet, ob es sich bei der Markierung um eine normale Markierung handelt.Wenn dies der Fall ist, testet ein weiterer If-Block, ob die Option ReplaceSelection aktiviert ist.Wenn dies der Fall ist, verwendet der Code die Collapse-Methode, um die Auswahl auf eine Einfügemarke am Anfang des ausgewählten Textblocks zu reduzieren.Fügen Sie den Text und eine Absatzmarke ein.
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(); }
Wenn es sich bei der Markierung nicht um eine Einfügemarke oder um einen Block mit markiertem Text handelt, führt der Code im Else-Block keine Aktion aus.
Else ' Do nothing. End If
else { // Do nothing. }
Sie können auch die TypeBackspace-Methode des Selection-Objekts verwenden. Diese Methode ahmt die Funktion der RÜCKTASTE auf der Tastatur nach.Beim Einfügen und Bearbeiten von Text bietet das Range-Objekt jedoch bessere Steuerungsmöglichkeiten.
Das folgende Beispiel enthält den vollständigen Code.Wenn Sie dieses Beispiel verwenden möchten, führen Sie den Code von der ThisDocument-Klasse bzw. der ThisAddIn-Klasse im Projekt aus.
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;
}
Siehe auch
Aufgaben
Gewusst wie: Programmgesteuertes Formatieren von Text in Dokumenten
Gewusst wie: Programmgesteuertes Definieren und Markieren von Bereichen in Dokumenten
Gewusst wie: Programmgesteuertes Erweitern von Bereichen in Dokumenten