Freigeben über


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.

HinweisHinweis

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

  1. 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";
    
  2. 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

  1. 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);
    
  2. Ersetzen Sie diese Zeichen durch die Zeichenfolge New Text.

    rng.Text = " New Text "
    
    rng.Text = "New Text"; 
    
  3. 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

  1. Deklarieren Sie eine Selection-Objektvariable.

    Dim currentSelection As Word.Selection = Application.Selection
    
    Word.Selection currentSelection = Application.Selection; 
    
  2. 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; 
    } 
    
  3. 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(); 
    } 
    
  4. 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();
        }
    
  5. 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