Como: Excluir marcas de parágrafo ao criar intervalos

Se aplica a

As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office.

Tipo de Projeto

  • Projetos de nível de documento

  • Projetos de nível de aplicativo

Versão do Microsoft Office

  • Word 2003

  • Word 2007

For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto.

Sempre que você Criar um objeto de Range com base em um parágrafo, Tudo caracteres não imprimíveis, como marcas de parágrafo, são incluídas no intervalo.Convém inserir o texto de um parágrafo de origem em um parágrafo de destino.Se deseja dividir o parágrafo de destino em parágrafos separados, você deve primeiro Remover a marca de parágrafo do parágrafo Origem.Além disso, como informações de formatação de parágrafo é armazenado dentro a marca de parágrafo, você talvez não queira incluir isso quando você inserir o intervalo em um parágrafo existente.

O procedimento de exemplo a seguir declara duas variáveis de Cadeia de Caracteres, recupera o conteúdo dos primeiro e segundo parágrafos do documento ativo e, em seguida, troca seu conteúdo.O exemplo a, em seguida, demonstra como remover o marcador de parágrafo do intervalo usando o método MoveEnd e inserindo texto dentro do parágrafo.

Para controlar a estrutura de parágrafo ao inserir texto

  1. dois Criar intervalo variáveis para os parágrafos primeiro e o segundo e recuperar seu conteúdo usando a propriedade Text.

    O exemplo de código a seguir pode ser usado em uma personalização de nível de documento.

    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; 
    

    O exemplo de código a seguir pode ser usado em um nível de aplicativo Adicionar - in.Este código usa o documento ativo.

    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. Atribuir a propriedade Text, trocar o texto entre dois parágrafos.

    firstRange.Text = secondString
    secondRange.Text = firstString
    
    firstRange.Text = secondString; 
    secondRange.Text = firstString; 
    
  3. Selecionar cada intervalo por sua vez e faça uma Pausar para exibir os resultados em uma caixa de mensagem.

    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. Ajuste firstRange usando o método MoveEnd para que o marcador de parágrafo não é uma parte do firstRange.

    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. Substituir o restante do texto no primeiro parágrafo, atribuindo um Novo Cadeia de Caracteres à propriedade Text do intervalo.

    firstRange.Text = "New content for paragraph 1."
    
    firstRange.Text = "New content for paragraph 1.";
    
  6. Substituir o texto no secondRange, incluindo a marca de parágrafo.

    secondRange.Text = "New content for paragraph 2."
    
    secondRange.Text = "New content for paragraph 2.";
    
  7. Selecionar firstRange e pausar para exibir os resultados em uma caixa de mensagem e, em seguida, faça o mesmo com secondRange.

    Como firstRange foi redefinido para excluir a marca de parágrafo, a formatação original do parágrafo é preservada.No entanto, uma frase inserida sobre a marca de parágrafo em secondRange, removendo o parágrafo separado.

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

    O conteúdo original de ambos os intervalos foram salvas como seqüências de caracteres, para que você possa restaurar o documento para sua condição original.

  8. Reajustar firstRange incluir a marca de parágrafo usando o método MoveEnd para uma posição de caractere.

    firstRange.MoveEnd(Unit:=Word.WdUnits.wdCharacter, Count:=1)
    
    move = 1;  // move right 1
    firstRange.MoveEnd(ref charUnit, ref move); 
    
  9. Excluir secondRange.Isso restaura parágrafo três à sua posição original.

    secondRange.Delete()
    
    secondRange.Delete(ref missing, ref missing); 
    
  10. Restaure o texto de parágrafo original em firstRange.

    firstRange.Text = firstString
    
    firstRange.Text = firstString; 
    
  11. Use o método InsertAfter do objeto Range para inserir o conteúdo de dois de parágrafo original após firstRangee, em seguida, Selecionar firstRange.

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

Exemplo de personalização de nível de documento

Para controlar a estrutura de parágrafo ao inserir texto em personalizações em nível de documento

  • O exemplo a seguir mostra Concluir método para uma personalização de nível de documento.Para usar esse código, execute-de a classe ThisDocument no seu projeto.

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

Nível de aplicativo Adicionar - exemplo

A estrutura de parágrafo do controle ao inserir texto em um aplicativo-nível Adicionar - in

  • O exemplo a seguir mostra Concluir método para um suplemento em nível de aplicativo.Para usar esse código, execute-de a classe ThisAddIn no seu projeto.

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

Consulte também

Tarefas

Como: Estender intervalos em documentos

Como: Recolher intervalos ou seleções em documentos

Como: Inserir texto em documentos do Word

Como: Documentos de intervalos de Redefinir no Word

Como: Definir e selecionar intervalos em documentos

Conceitos

Noções básicas sobre parâmetros opcionais in Office Solutions