Objeto Selection (Word)

Representa la selección actual en una ventana o panel. Una selección representa un área seleccionado (o resaltado) del documento o bien el punto de inserción si no hay nada seleccionado en el documento. Solo puede haber un objeto Selection en cada panel de la ventana de documentos y solo puede estar activo un objeto Selection en toda la aplicación.

Importante

Este método ha cambiado. El uso de comandos de selección de VBA como Selection.BoldRun en la selección del usuario con Comentarios ya no aplica formato de negrita en el texto seleccionado por el usuario ni el comando Selection.TypeTxt o en la selección de usuario con Comentarios ya no inserta texto.

Comentarios

Use la propiedad Selection para devolver el objeto Selection. Si no se usa ningún cualificador de objeto con la propiedad Selection, Microsoft Word devuelve la selección del panel activo de la ventana de documento activa. En el siguiente ejemplo se copia la selección actual desde el documento activo.

Selection.Copy

En el siguiente ejemplo se elimina la selección desde el tercer documento en la colección Documents. El documento no tiene que estar activo para obtener acceso a su selección actual.

Documents(3).ActiveWindow.Selection.Cut

En el siguiente ejemplo se copia la selección desde el primer panel del documento activo y se pega en el segundo panel.

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

La propiedad Text es la predeterminada del objeto Selection. Use esta propiedad para configurar o devolver el texto de la selección actual. En el siguiente ejemplo se asigna el texto en la selección actual a la variable strTemp, quitando el último carácter si se trata de una marca de párrafo.

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

El objeto Selection posee diversos métodos y propiedades con las que puede colapsar, expandir o cambiar de otro modo la selección actual. En el ejemplo siguiente, se mueve el punto de inserción hasta el final del documento y se seleccionan las últimas tres líneas.

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

El objeto Selection tiene diversos métodos y propiedades con los que puede editar el texto seleccionado de un documento. En el ejemplo siguiente, se selecciona la primera frase del documento activo y se sustituye por un nuevo párrafo.

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

En el siguiente ejemplo se elimina el último párrafo del primer documento en la colección Documents y se pega al principio del 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

El objeto Selection presenta varios métodos y propiedades con las que puede cambiar el formato de la selección actual. En el ejemplo siguiente, se cambia la fuente de la selección actual de Times New Roman a Tahoma.

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

Use propiedades como Flags, Information y Type para devolver información acerca de la selección actual. Puede usar el siguiente ejemplo en un procedimiento para determinar si hay algo seleccionado en el documento activo; si no lo hay, se omitirá el resto del procedimiento.

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

Aunque una selección esté colapsada a un punto de inserción, no estará necesariamente vacía. Por ejemplo, la propiedad Text continúa devolviendo el carácter situado a la derecha del punto de inserción; este carácter también aparece en la colección Characters del objeto Selection. Sin embargo, llamar a métodos como Cut o Copy desde una selección colapsada provoca un error.

El usuario puede seleccionar una región de un documento que no represente texto contiguo (por ejemplo, al usar la tecla ALT con el mouse). Como el comportamiento de dicha selección puede ser impredecible, es posible que quiera incluir un paso en el código que compruebe la propiedad Type de una selección antes de realizar alguna operación en ella ( Selection.Type = wdSelectionBlock).

De forma similar, las selecciones que incluyen celdas de tabla pueden tener también un comportamiento inesperado. La propiedad Information le indicará si una selección se encuentra dentro de una tabla ( Selection.Information(wdWithinTable) = True). El siguiente ejemplo determina si una selección es normal (por ejemplo, no es una fila o columna de una tabla, no es un bloque de texto vertical); puede usarla para probar la selección actual antes de realizar en ella cualquier operación.

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

Dado que los objetos Range comparten muchos de los mismos métodos y propiedades que los objetos Selection, el uso de objetos Range es preferible para manipular un documento si no existe motivo de cambiar físicamente la selección actual. Para obtener más información sobre objetos Selection y Range, vea Trabajar con el objeto Selection y Trabajar con objetos Range.

Métodos

Propiedades

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.