Trabajar con el objeto Selection
Cuando trabaja en un documento de Word, normalmente selecciona texto y después realiza una acción, como dar formato al texto o escribir texto. En Visual Basic, normalmente no es necesario seleccionar el texto antes de modificarlo. En su lugar, se crea un objeto Range que hace referencia a una parte específica del documento. Para obtener información sobre cómo definir los objetos Range, consulte Trabajar con objetos Range. Sin embargo, cuando quiera que el código responda a una selección o la cambie, puede hacerlo mediante el objeto Selection .
Si no hay texto seleccionado, utilice el método Select para seleccionar el texto asociado a un objeto específico y crear un objeto Selection. Por ejemplo, la siguiente instrucción selecciona la primera palabra del documento activo.
Sub SelectFirstWord()
ActiveDocument.Words(1).Select
End Sub
Para obtener más información, vea Seleccionar texto en un documento. Si el texto ya está seleccionado, utilice la propiedad Selection para devolver un objeto Selection que represente la selección actual en un documento. Sólo puede haber un objeto Selection en cada documento, y éste siempre obtiene acceso a la selección actual. En el siguiente ejemplo, se cambia el formato de los párrafos de la selección actual.
Sub FormatSelection()
Selection.Paragraphs.LeftIndent = InchesToPoints(0.5)
End Sub
En este ejemplo, se inserta la palabra "Hello" después de la selección actual.
Sub InsertTextAfterSelection()
Selection.InsertAfter Text:="Hello "
End Sub
En este ejemplo, se aplica el formato de negrita al texto seleccionado.
Sub BoldSelectedText()
Selection.Font.Bold = True
End Sub
Con frecuencia, la grabadora de macros crea una macro que utiliza el objeto Selection. El siguiente ejemplo se ha creado utilizando la grabadora de macros. Esta macro selecciona las dos primeras palabras del documento activo y les aplica el formato de negrita.
Sub Macro()
Selection.HomeKey Unit:=wdStory
Selection.MoveRight Unit:=wdWord, Count:=2, Extend:=wdExtend
Selection.Font.Bold = wdToggle
End Sub
En el siguiente ejemplo, se realiza la misma tarea sin seleccionar el texto ni utilizar el objeto Selection.
Sub WorkingWithRanges()
ActiveDocument.Range(Start:=0, _
End:=ActiveDocument.Words(2).End).Bold = True
End Sub
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.