En numerosas ocasiones, cuando escribe macros, deberá determinar si el usuario ha realizado una selección. Hay muchas formas de hacer esto en una macro. El siguiente código ilustra un método posible para lograr esto en VBA. Establece el valor de una bandera, bInSelection, en Verdadero si actualmente hay una selección. De lo contrario, bInSelection se establece en False.

Dim bInSelection As Boolean

bInSelection = False If Selection.Type=wdSelectionIP Then     bInselection=True End If

Quizás se pregunte si podría usar un enfoque para verificar si la longitud de la selección es mayor que cero, como en este método:

Dim bInSelection As Boolean

bInSelection = False If Len(Selection) > 0 Then     bInselection=True End If

Este enfoque no funcionará. La razón es porque cuando no se realiza ninguna selección (el punto de inserción está contraído y simplemente parpadea), Word todavía devuelve una longitud de selección de 1. Esto es un poco agravante ya que no tiene sentido lógico. Por lo tanto, debe verificar la propiedad Type del objeto Selection, como en el primer ejemplo anterior. Si desea acortarlo aún más, puede usar lo siguiente:

Dim bInSelection As Boolean

bInselection=(Selection.Type=wdSelectionIP)

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.

link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

WordTips es su fuente de formación rentable en Microsoft Word.

(Microsoft Word es el software de procesamiento de texto más popular del mundo). Esta sugerencia (12175) se aplica a Microsoft Word 2007, 2010, 2013, 2016, 2019 y Word en Office 365. Puede encontrar una versión de esta sugerencia para interfaz de menú anterior de Word aquí:

link: / word-Checking_for_a_Text_Selection_Length [Comprobando una longitud de selección de texto].