Partilhar via


Trabalhar com o objeto Selection

Quando você trabalha em um documento no Word, geralmente seleciona texto e executa uma ação, como formatar o texto ou digitar texto. No Visual Basic, geralmente não é necessário selecionar texto antes de modificar o texto. Em vez disso, você cria um objeto Range que se refere a uma parte específica do documento. Para obter informações sobre como definir objetos Range, consulte Trabalhando com objetos Range. No entanto, quando você deseja que seu código responda ou altere uma seleção, você pode fazê-lo usando o objeto Selection .

Se o texto ainda não estiver selecionado, use o método Selecionar para selecionar o texto associado a um objeto específico e criar um objeto Selection . Por exemplo, a instrução seguinte seleciona a primeira palavra do documento ativo.

Sub SelectFirstWord() 
 ActiveDocument.Words(1).Select 
End Sub

Para obter mais informações, consulte Selecionando texto em um documento. Se o texto já estiver selecionado, use a propriedade Selection para retornar um objeto Selection que representa a seleção atual em um documento. Só pode haver um objeto Selection por documento e ele sempre acessa a seleção atual. O exemplo a seguir altera a formatação dos parágrafos na seleção atual.

Sub FormatSelection() 
 Selection.Paragraphs.LeftIndent = InchesToPoints(0.5) 
End Sub

Este exemplo insere a palavra "Hello" após a seleção atual.

Sub InsertTextAfterSelection() 
 Selection.InsertAfter Text:="Hello " 
End Sub

Este exemplo aplica formatação negrito ao texto selecionado.

Sub BoldSelectedText() 
 Selection.Font.Bold = True 
End Sub

O gravador de macro frequentemente cria uma macro que use o objeto Selection. O exemplo a seguir foi criado pelo uso do gravador de macro. Essa macro selecione as duas primeiras palavras do documento ativo e aplica formatação negrito a elas.

Sub Macro() 
 Selection.HomeKey Unit:=wdStory 
 Selection.MoveRight Unit:=wdWord, Count:=2, Extend:=wdExtend 
 Selection.Font.Bold = wdToggle 
End Sub

O exemplo a seguir efetua a mesma tarefa sem a seleção do texto ou o uso do objeto Selection.

Sub WorkingWithRanges() 
 ActiveDocument.Range(Start:=0, _ 
 End:=ActiveDocument.Words(2).End).Bold = True 
End Sub

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.