Modificando uma parte de um documento

Visual Basic inclui objetos que você pode usar para modificar os seguintes elementos do documento: caracteres, palavras, frases, parágrafos e seções. A tabela seguinte inclui as propriedades que correspondem a esses elementos de documentos e aos objetos que eles retornam.

Esta expressão Retorna este objeto
Palavras ( índice) Range
Caracteres ( índice) Range
Frases ( índice) Range
Parágrafos ( índice) Parágrafo
Seções ( índice) Section

Quando essas propriedades são usadas sem um índice, um objeto da coleção com o mesmo nome é retornado. Por exemplo, a propriedade Paragraphs retorna o objeto da coleção Paragraphs. Entretanto, se você identificar um item dentro dessas coleções por índice, o objeto da segunda coluna da tabela será retornado. Por exemplo, Words(1) retorna um objeto Range. Quando tiver um objeto Range,você poderá usar qualquer das propriedades ou métodos de intervalos para modificar o objeto Range. Por exemplo, a instrução a seguir copia a primeira palavra da seleção para a área de transferência.

Sub CopyWord() 
    Selection.Words(1).Copy 
End Sub

Observação Os itens nas coleções Paragraphs e Sections são formas singulares da coleção, especificamente objetos Paragraph e objetos Section, em vez de objetos Range. Na verdade, a maioria das coleções no modelo de objeto do Word tem objetos de formulário singulares com os quais você pode trabalhar. Entretanto, a propriedade Range (que retorna um objeto Range) está disponível a partir dos objetos Paragraph e Section, além da maior parte dos demais objetos que são filhos de coleções. Por exemplo, a instrução a seguir copia o primeiro parágrafo do documento ativo para a área de transferência.

Sub CopyParagraph() 
    ActiveDocument.Paragraphs(1).Range.Copy 
End Sub

Todas as propriedades do elemento de documento da tabela anterior estão disponíveis a partir dos objetos Document, Selection e Range. Os exemplos a seguir demonstram como você pode detalhar essas propriedades dos objetos Document, Selection e Range. O exemplo a seguir define se a primeira palavra do documento ativo estará em maiúsculas ou minúsculas.

Sub ChangeCase() 
    ActiveDocument.Words(1).Case = wdUpperCase 
End Sub

O exemplo a seguir define a margem inferior da seção atual como 0,5 polegada (1,27 centímetro).

Sub ChangeSectionMargin() 
    Selection.Sections(1).PageSetup.BottomMargin = InchesToPoints(0.5) 
End Sub

O exemplo a seguir espaços duplos do texto no documento ativo (a propriedade Content retorna um objeto Range).

Sub DoubleSpaceDocument() 
    ActiveDocument.Content.ParagraphFormat.Space2 
End Sub

Modificar um grupo de elementos de documento

Para modificar um intervalo de texto que consiste em um grupo de elementos de documento (caracteres, palavras, frases, parágrafos ou seções), será necessário criar um objeto Range. O método Range cria um objeto Range, dados um ponto inicial e um ponto final. Por exemplo, a instrução a seguir cria um objeto Range referente aos dez primeiros caracteres do documento ativo.

Sub SetRangeForFirstTenCharacters() 
    Dim rngTenCharacters As Range 
    Set rngTenCharacters = ActiveDocument.Range(Start:=0, End:=10) 
End Sub

Usando as propriedades Start e End com um objeto Range, você pode criar um novo objeto Range que se refere a um grupo de elementos do documento. Por exemplo, a instrução a seguir cria um objeto Range ( ) que se refere às três primeiras rngThreeWords palavras no documento ativo.

Sub SetRangeForFirstThreeWords() 
    Dim docActive As Document 
    Dim rngThreeWords As Range 
    Set docActive = ActiveDocument 
    Set rngThreeWords = docActive.Range(Start:=docActive.Words(1).Start, _ 
        End:=docActive.Words(3).End) 
End Sub

O exemplo a seguir cria um objeto Range ( ) começando no início do segundo parágrafo e rngParagraphs terminando após o terceiro parágrafo.

Sub SetParagraphRange() 
    Dim docActive As Document 
    Dim rngParagraphs As Range 
    Set docActive = ActiveDocument 
    Set rngParagraphs = docActive.Range(Start:=docActive.Paragraphs(2).Range.Start, _ 
        End:=docActive.Paragraphs(3).Range.End) 
End Sub

Para obter mais informações sobre como definir objetos Range, consulte Trabalhando com objetos Range.

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.