Freigeben über


Gewusst wie: Ausschließen von Absatzmarken beim Erstellen von Bereichen

Aktualisiert: November 2007

Betrifft

Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office.

Projekttyp

  • Projekte auf Dokumentebene

  • Projekte auf Anwendungsebene

Microsoft Office-Version

  • Word 2003

  • Word 2007

Weitere Informationen hierzu finden Sie unter Verfügbare Features nach Anwendung und Projekttyp.

Wenn Sie ein Range-Objekt auf Grundlage eines Absatzes erstellen, umfasst der Bereich auch alle nicht druckbaren Zeichen wie zum Beispiel Absatzmarken. Möglicherweise möchten Sie den Text aus einem Quellabsatz in einen Zielabsatz einfügen. Um dabei den Zielabsatz nicht in mehrere Absätze aufzuteilen, müssen Sie zunächst die Absatzmarke aus dem Quellabsatz entfernen. Außerdem sind in der Absatzmarke Formatierungsinformationen gespeichert, die Sie möglicherweise beim Einfügen des Bereichs in einen vorhandenen Absatz nicht übernehmen möchten.

In der folgenden Beispielprozedur werden zwei Zeichenfolgenvariablen deklariert, die Inhalte des ersten und des zweiten Absatzes im aktiven Dokument werden abgerufen, und anschließend werden die Inhalte ausgetauscht. Das Beispiel veranschaulicht das Entfernen der Absatzmarke aus dem Bereich unter Verwendung der MoveEnd-Methode und das anschließende Einfügen des Texts in den Absatz.

So steuern Sie die Absatzstruktur beim Einfügen von Text

  1. Erstellen Sie für den ersten und den zweiten Absatz zwei Bereichsvariablen, und rufen Sie ihre Inhalte mit der Text-Eigenschaft ab.

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

    Dim firstRange As Word.Range = Me.Paragraphs(1).Range
    Dim secondRange As Word.Range = Me.Paragraphs(2).Range
    
    Dim firstString As String = firstRange.Text
    Dim secondString As String = secondRange.Text
    
    Word.Range firstRange = this.Paragraphs[1].Range; 
    Word.Range secondRange = this.Paragraphs[2].Range; 
    
    string firstString = firstRange.Text; 
    string secondString = secondRange.Text; 
    

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

    Dim document As Word.Document = Me.Application.ActiveDocument
    Dim firstRange As Word.Range = document.Paragraphs(1).Range
    Dim secondRange As Word.Range = document.Paragraphs(2).Range
    
    Dim firstString As String = firstRange.Text
    Dim secondString As String = secondRange.Text
    
    Word.Document document = this.Application.ActiveDocument;
    Word.Range firstRange = document.Paragraphs[1].Range;
    Word.Range secondRange = document.Paragraphs[2].Range;
    
    string firstString = firstRange.Text;
    string secondString = secondRange.Text;
    
  2. Ordnen Sie die Text-Eigenschaft zu, und tauschen Sie auf diese Weise die Texte der beiden Absätze aus.

    firstRange.Text = secondString
    secondRange.Text = firstString
    
    firstRange.Text = secondString; 
    secondRange.Text = firstString; 
    
  3. Wählen Sie nacheinander jeden Bereich aus, und halten Sie den Vorgang an, um die Ergebnisse in einem Meldungsfeld anzuzeigen.

    firstRange.Select()
    MessageBox.Show(firstRange.Text)
    secondRange.Select()
    MessageBox.Show(secondRange.Text)
    
    firstRange.Select(); 
    MessageBox.Show(firstRange.Text); 
    secondRange.Select(); 
    MessageBox.Show(secondRange.Text); 
    
  4. Passen Sie firstRange unter Verwendung der MoveEnd-Methode so an, dass die Absatzmarke nicht mehr Teil von firstRange ist.

    firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=-1)
    
    object charUnit = Word.WdUnits.wdCharacter;
    object move = -1;  // move left 1
    
    firstRange.MoveEnd(ref charUnit, ref move);
    
  5. Ersetzen Sie den restlichen Text im ersten Absatz, indem Sie der Text-Eigenschaft des Bereichs eine neue Zeichenfolge zuweisen.

    firstRange.Text = "New content for paragraph 1."
    
    firstRange.Text = "New content for paragraph 1.";
    
  6. Ersetzen Sie den Text in secondRange einschließlich der Absatzmarke.

    secondRange.Text = "New content for paragraph 2."
    
    secondRange.Text = "New content for paragraph 2.";
    
  7. Markieren Sie firstRange, und zeigen Sie die Ergebnisse als Unterbrechung in einem Meldungsfeld an. Führen Sie den gleichen Vorgang für secondRange aus.

    Da firstRange unter Ausschluss der Absatzmarke neu definiert wurde, wird die ursprüngliche Formatierung des Absatzes beibehalten. Es wurde jedoch über der Absatzmarke in secondRange ein Satz eingefügt, wobei der separate Absatz entfernt wurde.

    firstRange.Select()
    MessageBox.Show(firstRange.Text)
    secondRange.Select()
    MessageBox.Show(secondRange.Text)
    
    firstRange.Select(); 
    MessageBox.Show(firstRange.Text); 
    secondRange.Select(); 
    MessageBox.Show(secondRange.Text); 
    

    Die ursprünglichen Inhalte beider Bereiche wurden als Zeichenfolgen gespeichert, sodass das Dokument in seinem ursprünglichen Zustand wiederhergestellt werden kann.

  8. Erweitern Sie die Größe von firstRange unter Verwendung der MoveEnd-Methode um eine Zeichenposition, sodass die Absatzmarke wieder Teil des Bereichs ist.

    firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=1)
    
    move = 1;  // move right 1
    firstRange.MoveEnd(ref charUnit, ref move); 
    
  9. Löschen Sie secondRange. Dadurch wird der dritte Absatz an seiner ursprünglichen Position wiederhergestellt.

    secondRange.Delete()
    
    secondRange.Delete(ref missing, ref missing); 
    
  10. Stellen Sie den ursprünglichen Text des Absatzes in firstRange wieder her.

    firstRange.Text = firstString
    
    firstRange.Text = firstString; 
    
  11. Verwenden Sie die InsertAfter-Methode des Range-Objekts, um den ursprünglichen Inhalt des zweiten Absatzes im Anschluss an firstRange einzufügen, und markieren Sie dann firstRange.

    firstRange.InsertAfter(secondString)
    firstRange.Select()
    
    firstRange.InsertAfter(secondString); 
    firstRange.Select(); 
    

Beispiel für die Anpassung auf Dokumentebene

So steuern Sie die Absatzstruktur beim Einfügen von Text in Anpassungen auf Dokumentebene

  • Im folgenden Beispiel wird die vollständige Methode für eine Anpassung auf Dokumentebene gezeigt. Wenn Sie diesen Code verwenden möchten, führen Sie ihn von der ThisDocument-Klasse im Projekt aus.

    Private Sub ReplaceParagraphText()
    
        Dim firstRange As Word.Range = Me.Paragraphs(1).Range
        Dim secondRange As Word.Range = Me.Paragraphs(2).Range
    
        Dim firstString As String = firstRange.Text
        Dim secondString As String = secondRange.Text
    
        firstRange.Text = secondString
        secondRange.Text = firstString
    
        firstRange.Select()
        MessageBox.Show(firstRange.Text)
        secondRange.Select()
        MessageBox.Show(secondRange.Text)
    
        firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=-1)
    
        firstRange.Text = "New content for paragraph 1."
        secondRange.Text = "New content for paragraph 2."
    
        firstRange.Select()
        MessageBox.Show(firstRange.Text)
        secondRange.Select()
        MessageBox.Show(secondRange.Text)
    
        firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=1)
    
        secondRange.Delete()
    
        firstRange.Text = firstString
    
        firstRange.InsertAfter(secondString)
        firstRange.Select()
    End Sub
    
    private void ReplaceParagraphText() 
    { 
        Word.Range firstRange = this.Paragraphs[1].Range; 
        Word.Range secondRange = this.Paragraphs[2].Range; 
    
        string firstString = firstRange.Text; 
        string secondString = secondRange.Text; 
    
        firstRange.Text = secondString; 
        secondRange.Text = firstString; 
    
        firstRange.Select(); 
        MessageBox.Show(firstRange.Text); 
        secondRange.Select(); 
        MessageBox.Show(secondRange.Text); 
    
        object charUnit = Word.WdUnits.wdCharacter;
        object move = -1;  // move left 1
    
        firstRange.MoveEnd(ref charUnit, ref move);
    
        firstRange.Text = "New content for paragraph 1.";
        secondRange.Text = "New content for paragraph 2.";
    
        firstRange.Select(); 
        MessageBox.Show(firstRange.Text); 
        secondRange.Select(); 
        MessageBox.Show(secondRange.Text); 
    
        move = 1;  // move right 1
        firstRange.MoveEnd(ref charUnit, ref move); 
    
        secondRange.Delete(ref missing, ref missing); 
    
        firstRange.Text = firstString; 
    
        firstRange.InsertAfter(secondString); 
        firstRange.Select(); 
    }
    

Beispiel für Add-Ins auf Anwendungsebene

So steuern Sie die Absatzstruktur beim Einfügen von Text in einem Add-In auf Anwendungsebene

  • Im folgenden Beispiel wird die vollständige Methode für ein Add-In auf Anwendungsebene gezeigt. Wenn Sie diesen Code verwenden möchten, führen Sie ihn von der ThisAddIn-Klasse im Projekt aus.

    Private Sub ReplaceParagraphText()
    
        Dim document As Word.Document = Me.Application.ActiveDocument
        Dim firstRange As Word.Range = document.Paragraphs(1).Range
        Dim secondRange As Word.Range = document.Paragraphs(2).Range
    
        Dim firstString As String = firstRange.Text
        Dim secondString As String = secondRange.Text
    
        firstRange.Text = secondString
        secondRange.Text = firstString
    
        firstRange.Select()
        MessageBox.Show(firstRange.Text)
        secondRange.Select()
        MessageBox.Show(secondRange.Text)
    
        firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=-1)
    
        firstRange.Text = "New content for paragraph 1."
        secondRange.Text = "New content for paragraph 2."
    
        firstRange.Select()
        MessageBox.Show(firstRange.Text)
        secondRange.Select()
        MessageBox.Show(secondRange.Text)
    
        firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=1)
    
        secondRange.Delete()
    
        firstRange.Text = firstString
    
        firstRange.InsertAfter(secondString)
        firstRange.Select()
    End Sub
    
    private void ReplaceParagraphText()
    {
        Word.Document document = this.Application.ActiveDocument;
        Word.Range firstRange = document.Paragraphs[1].Range;
        Word.Range secondRange = document.Paragraphs[2].Range;
    
        string firstString = firstRange.Text;
        string secondString = secondRange.Text;
    
        firstRange.Text = secondString;
        secondRange.Text = firstString;
    
        firstRange.Select();
        MessageBox.Show(firstRange.Text);
        secondRange.Select();
        MessageBox.Show(secondRange.Text);
    
        object charUnit = Word.WdUnits.wdCharacter;
        object move = -1;  // move left 1
    
        firstRange.MoveEnd(ref charUnit, ref move);
    
        firstRange.Text = "New content for paragraph 1.";
        secondRange.Text = "New content for paragraph 2.";
    
        firstRange.Select();
        MessageBox.Show(firstRange.Text);
        secondRange.Select();
        MessageBox.Show(secondRange.Text);
    
        move = 1;  // move right 1
        firstRange.MoveEnd(ref charUnit, ref move);
    
        secondRange.Delete(ref missing, ref missing);
    
        firstRange.Text = firstString;
    
        firstRange.InsertAfter(secondString);
        firstRange.Select();
    }
    

Siehe auch

Aufgaben

Gewusst wie: Erweitern von Bereichen in Dokumenten

Gewusst wie: Reduzieren von Bereichen oder Markierungen in Dokumenten

Gewusst wie: Einfügen von Text in Word-Dokumente

Gewusst wie: Zurücksetzen von Bereichen in Word-Dokumenten

Gewusst wie: Definieren und Markieren von Bereichen in Dokumenten

Konzepte

Optionale Parametern in Office-Projektmappen