Como: Excluir marcas de parágrafo, ao criar intervalos
Sempre que você criar um Range objeto baseado em um parágrafo, todos os caracteres não imprimíveis, como marcas de parágrafo, são incluídos no intervalo. Você talvez queira inserir o texto de um parágrafo de origem em um parágrafo de destino. Se não desejar dividir o parágrafo de destino em parágrafos separados, deve primeiro remover a marca de parágrafo do parágrafo de origem. Além disso, como as informações de formatação de parágrafo é armazenado dentro da marca de parágrafo, você talvez não queira incluí-lo ao inserir o intervalo em um parágrafo existente.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de nível de aplicativo para Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
O procedimento de exemplo a seguir declara duas variáveis de seqüência de caracteres, recupera o conteúdo da primeiro e segundo parágrafos no documento ativo e, em seguida, troca de seu conteúdo. O exemplo demonstra, em seguida, removendo o marcador de parágrafo do intervalo usando o MoveEnd método e a inserção de texto dentro do parágrafo.
Para controlar a estrutura do parágrafo ao inserir texto
Crie duas variáveis de intervalo para os parágrafos de primeiro e segundo e recuperar seus conteúdos usando o Text propriedade.
O exemplo de código a seguir pode ser usado em uma personalização em 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 suplemento em nível de aplicativo. Esse 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;
Atribuir o Text propriedade, trocando o texto entre dois parágrafos.
firstRange.Text = secondString secondRange.Text = firstString
firstRange.Text = secondString; secondRange.Text = firstString;
Selecione o intervalo de cada vez e faça uma pausa 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);
Ajustar firstRange usando o MoveEnd método para que o marcador de parágrafo não é mais 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);
Substitua o restante do texto do primeiro parágrafo, atribuindo uma nova seqüência de caracteres para o Text propriedade do intervalo.
firstRange.Text = "New content for paragraph 1."
firstRange.Text = "New content for paragraph 1.";
Substitua o texto da secondRange, incluindo a marca de parágrafo.
secondRange.Text = "New content for paragraph 2."
secondRange.Text = "New content for paragraph 2.";
Selecione firstRange e faça uma pausa para exibir os resultados em uma caixa de mensagem e, em seguida, faça o mesmo com secondRange.
Desde que firstRange foi redefinido para excluir a marca de parágrafo, a formatação original do parágrafo é preservada. No entanto, uma sentença foi 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 dois intervalos foram salvos como seqüências, para que você possa restaurar o documento para sua condição original.
Reajuste firstRange para incluir a marca de parágrafo usando o MoveEnd método 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);
Excluir secondRange. Isso restaura o parágrafo três à sua posição original.
secondRange.Delete()
secondRange.Delete(ref missing, ref missing);
Restaurar o texto de parágrafo original em firstRange.
firstRange.Text = firstString
firstRange.Text = firstString;
Uso o InsertAfter método da Range o objeto para inserir o conteúdo original do parágrafo dois após firstRangee selecione 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, inserindo texto em personalizações em nível de documento
O exemplo a seguir mostra o método complete para uma personalização em nível de documento. Para usar esse código, executá-lo do ThisDocument classe no 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 no exemplo de-
Para controlar a estrutura de parágrafo, inserindo texto em um suplemento em nível de aplicativo
O exemplo a seguir mostra o método completo para um suplemento em nível de aplicativo. Para usar esse código, executá-lo do ThisAddIn classe no 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 a intervalos em documentos
Como: Recolher seleções em documentos ou intervalos
Como: Inserir texto em documentos do Word
Como: Intervalos de redefinição em documentos do Word
Como: Definir e selecionar intervalos em documentos