Objeto Selection (Word)

Representa a seleção atual em uma janela ou um painel. Uma seleção representa uma área selecionada (ou realçada) no documento, ou representa o ponto de inserção se nada no documento estiver selecionado. Pode haver apenas um Selection por painel de janela de documento e apenas um objeto Selection pode estar ativo em todo o aplicativo.

Importante

Este método foi alterado. Usando comandos de seleção VBA como Selection.BoldRun na seleção do usuário com Comentários não se aplica mais a formatação em negrito no texto selecionado pelo usuário ou comando Selection.TypeTxt ou na seleção do usuário com Comentários não insere mais texto.

Comentários

Use a propriedade Selection para retornar o objeto Selection. Se nenhum qualificador de objeto for usado com a propriedade Selection, o Microsoft Word retornará a seleção do painel ativo da janela do documento ativo. O exemplo a seguir copia a seleção atual do documento ativo.

Selection.Copy

O exemplo a seguir exclui a seleção do terceiro documento na coleção Documents. O documento não precisa estar ativo para acessar sua seleção atual.

Documents(3).ActiveWindow.Selection.Cut

O exemplo a seguir copia a seleção do primeiro painel do documento ativo e o cola no segundo painel.

ActiveDocument.ActiveWindow.Panes(1).Selection.Copy 
ActiveDocument.ActiveWindow.Panes(2).Selection.Paste

A propriedade Text é a propriedade padrão do objeto Selection. Use essa propriedade para definir ou retornar o texto na seleção atual. O exemplo a seguir atribui o texto na seleção atual à variável strTemp, removendo o último caractere se ele for uma marca de parágrafo.

Dim strTemp as String 
 
strTemp = Selection.Text 
If Right(strTemp, 1) = vbCr Then _ 
 strTemp = Left(strTemp, Len(strTemp) - 1)

O objeto Selection tem vários métodos e propriedades com os quais você pode recolher, expandir ou alterar a seleção atual. O exemplo a seguir move o ponto de inserção até o final do documento e seleciona a última três linhas.

Selection.EndOf Unit:=wdStory, Extend:=wdMove 
Selection.HomeKey Unit:=wdLine, Extend:=wdExtend 
Selection.MoveUp Unit:=wdLine, Count:=2, Extend:=wdExtend

O objeto Selection tem vários métodos e propriedades com os quais você pode editar o texto selecionado em um documento. O exemplo a seguir seleciona a primeira sentença no documento ativo e a substitui por um novo parágrafo.

Options.ReplaceSelection = True 
ActiveDocument.Sentences(1).Select 
Selection.TypeText "Material below is confidential." 
Selection.TypeParagraph

O exemplo a seguir exclui o último parágrafo do primeiro documento da coleção Documents e o cola no início do segundo documento.

With Documents(1) 
 .Paragraphs.Last.Range.Select 
 .ActiveWindow.Selection.Cut 
End With 
 
With Documents(2).ActiveWindow.Selection 
 .StartOf Unit:=wdStory, Extend:=wdMove 
 .Paste 
End With

O objeto Selection objeto tem vários métodos e propriedades com os quais você pode alterar a formatação da seleção atual. O exemplo a seguir altera a fonte da seleção atual de Times New Roman para Tahoma.

If Selection.Font.Name = "Times New Roman" Then _ 
 Selection.Font.Name = "Tahoma"

Use propriedades como Sinalizadores, Informação e Tipo para retornar informações sobre a seleção atual. Você pode usar o exemplo a seguir em um procedimento para determinar se há algo selecionado no documento ativo. Se não houver, o restante do procedimento será ignorado.

If Selection.Type = wdSelectionIP Then 
 MsgBox Prompt:="You have not selected any text! Exiting procedure..." 
 Exit Sub 
End If

Mesmo quando uma seleção é recolhida para um ponto de inserção, ela não está necessariamente vazia. Por exemplo, a propriedade Text ainda retornará o caractere à direita do ponto de inserção; esse caractere também aparece na coleção Characters do objeto Selection. No entanto, chamar métodos como Cut ou Copy de uma seleção recolhida causa um erro.

É possível que o usuário selecione uma região em um documento que não represente texto contíguo (por exemplo, ao usar a tecla Alt com o mouse). Como o comportamento dessa seleção pode ser imprevisível, convém incluir uma etapa no código que verifique a propriedade Tipo de uma seleção antes de executar qualquer operação nela (Selection.Type = wdSelectionBlock).

Da mesma forma, as seleções que incluem células da tabela também podem levar a um comportamento imprevisível. A propriedade Informação informará se uma seleção está dentro de uma tabela (Selection.Information(wdWithinTable) = True). O exemplo a seguir determina se uma seleção é normal (por exemplo, não é uma linha ou uma coluna em uma tabela, não é um bloco vertical de texto); você pode usá-lo para testar a seleção atual antes de executar quaisquer operações nela.

If Selection.Type <> wdSelectionNormal Then 
 MsgBox Prompt:="Not a valid selection! Exiting procedure..." 
 Exit Sub 
End If

Como os objetos Range compartilham muitos dos mesmos métodos e propriedades como objetos Selection, será melhor utilizar objetos Range para manipular um documento quando não houver um motivo para alterar fisicamente a seleção atual. Para saber mais sobre os objetos Selection e Range, confira Trabalhar com o objeto Selection e Trabalhar com objetos Range.

Métodos

Propriedades

Confira também

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.