Programmgesteuertes Einfügen von Text in Word-Dokumente

Es gibt drei Hauptmethoden zum Einfügen von Text in Microsoft Office Word-Dokumente:

  • Fügen Sie Text in einen Bereich ein.

  • Ersetzen Sie Text in einem Bereich durch neuen Text.

  • Verwenden Sie die TypeText -Methode eines Selection -Objekts, um Text an der Cursor- oder Auswahlposition einzufügen.

Hinweis

Sie können auch Text in Inhaltssteuerelemente und Lesezeichen einfügen. Weitere Informationen finden Sie unter Inhaltssteuerelemente und Lesezeichensteuerelemente.

Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene und VSTO-Add-In-Projekte für Word. Weitere Informationen finden Sie unter features available by Office-App lication and project type.

Hinweis

Möchten Sie Lösungen entwickeln, die die Office-Erfahrung auf mehreren Plattformen erweitern? Schauen Sie sich das neue Office-Add-Ins-Modell an. Office-Add-Ins haben im Vergleich zu VSTO-Add-Ins und -Lösungen einen geringen Platzbedarf, und Sie können diese mithilfe nahezu jeder Webprogrammiertechnologie erstellen, z. B. HTML5, JavaScript, CSS3 und XML.

Einfügen von Text in einen Bereich

Verwenden Sie die Text -Eigenschaft eines Range -Objekts, um Text in ein Dokument einzufügen.

So fügen Sie Text in einen Bereich ein

  1. Geben Sie einen Bereich am Anfang eines Dokuments an, und fügen Sie den Text New Textein.

    Das folgende Codebeispiel kann in einer Anpassung auf Dokumentebene verwendet werden.

    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 VSTO-Add-In verwendet werden. In diesem Code wird das aktive Dokument verwendet.

    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();
    

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.

    object start = 0; 
    object end = 12; 
    
    Word.Range rng = this.Range(ref start, ref end);
    

    Das folgende Codebeispiel kann in einem VSTO-Add-In verwendet werden. In diesem Code wird das aktive Dokument verwendet.

    Word.Range rng = this.Application.ActiveDocument.Range(0, 12);
    
  2. Ersetzen Sie diese Zeichen durch die Zeichenfolge New Text.

    rng.Text = "New Text";
    
  3. Wählen Sie den Bereich aus.

    rng.Select();
    

Einfügen von Text mithilfe von TypeText

Durch die TypeText -Methode wird Text an der Auswahlposition eingefügt. Je nach den auf dem Benutzercomputer festgelegten Optionen verhält sichTypeText unterschiedlich. Durch den Code in der folgenden Prozedur wird eine Selection -Objektvariable deklariert und die Overtype -Option deaktiviert, sofern sie aktiviert war. Wenn die Overtype -Option aktiviert ist, wird sämtlicher Text neben dem Cursor überschrieben.

So fügen Sie Text mithilfe der TypeText-Methode ein

  1. Deklarieren Sie eine Selection-Objektvariable.

    Word.Selection currentSelection = Application.Selection;
    
  2. Deaktivieren Sie die Overtype -Option, falls sie eingeschaltet ist.

    if (Application.Options.Overtype) 
    { 
        Application.Options.Overtype = false; 
    }
    
  3. Überprüfen Sie, ob es sich bei der aktuellen Auswahl um eine Einfügemarke handelt.

    Falls ja, fügt der Code einen Satz mithilfe von TypeTextund dann eine Absatzmarke mithilfe der TypeParagraph -Methode ein.

    // Test to see if selection is an insertion point.
    if (currentSelection.Type == Word.WdSelectionType.wdSelectionIP) 
    { 
        currentSelection.TypeText("Inserting at insertion point. ");
        currentSelection.TypeParagraph(); 
    }
    
  4. Durch den Code im ElseIf -Block wird überprüft, ob die Auswahl eine normale Auswahl ist. Falls ja, wird durch einen anderen If -Block überprüft, ob die ReplaceSelection -Option 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.

    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 die Auswahl keine Einfügemarke oder kein Block mit markierten Text ist, wird vom Code im Else -Block keine Aktion ausgeführt.

    else
    {
        // Do nothing.
    }
    

    Sie können auch die TypeBackspace Methode des Selection Objekts verwenden, die die Funktionalität der Rücktaste auf der Tastatur nachahmt. Wenn es jedoch um das Einfügen und Bearbeiten von Text geht, bietet Ihnen das Range -Objekt mehr 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 oder ThisAddIn -Klasse im Projekt aus.

    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;
    }