Agnes preguntó si hay una manera de subrayar automáticamente todas las instancias de la palabra «Sección» y cualquier información auxiliar que siga a la palabra.

Por ejemplo, un documento puede contener texto como «Sección 2.3 (b) (i)»

o «Sección 5.21» o «Sección 12.12 (a)» y Agnes quiere encontrar este texto y que esté todo subrayado.

Hay un par de cosas que puedes probar. En primer lugar, podría hacer una búsqueda y reemplazo estándar, pero solo si de alguna manera puede hacer que el texto sea un poco más «estándar». Sin algún tipo de patrón que pueda coincidir, es prácticamente imposible realizar una búsqueda y reemplazo que encuentre todas las instancias posibles del texto.

Sin embargo, una posibilidad es grabar una macro que analice todas las posibilidades. No sería necesariamente una macro simple, ya que necesitaría encontrar la palabra «Sección» seguida inmediatamente por un espacio, un dígito, un punto, más dígitos y luego (opcionalmente) todo hasta el paréntesis de cierre incluido. Eso es un poco de análisis de texto que debe ocurrir.

El lugar para comenzar es con una búsqueda con comodines. La siguiente frase de búsqueda encontrará la palabra Sección seguida de un «número de punto»

patrón:

Section [0-9]{1,}.[0-9]{1,}

Si este patrón de búsqueda se utiliza en una macro, la macro puede, después de cada búsqueda exitosa del texto, comenzar a expandir lo que se encontró y ver si contiene caracteres entre paréntesis. La siguiente macro realizará esta tarea.

Sub ULWords()

Selection.Find.ClearFormatting     With Selection.Find         .Text = "Section [0-9]{1,}.[0-9]{1,}"

.Replacement.Text = ""

.Forward = True         .Wrap = wdFindContinue         .Format = False         .MatchCase = False         .MatchWholeWord = False         .MatchWildcards = True         .MatchSoundsLike = False         .MatchAllWordForms = False     End With     Selection.Find.Execute     While Selection.Find.Found         Selection.MoveRight Unit:=wdCharacter, _           Count:=1, Extend:=wdExtend             While Right(Selection.Text, 1) = "("

Selection.MoveRight Unit:=wdCharacter, _                   Count:=1, Extend:=wdExtend                 While Right(Selection.Text, 1) <> ")"

Selection.MoveRight Unit:=wdCharacter, _                       Count:=1, Extend:=wdExtend                 Wend                 Selection.MoveRight Unit:=wdCharacter, _                   Count:=1, Extend:=wdExtend             Wend         Selection.MoveRight Unit:=wdCharacter, _           Count:=-1, Extend:=wdExtend         Selection.Font.Underline = True         Selection.MoveRight Unit:=wdCharacter, Count:=1         Selection.Find.Execute     Wend End Sub

Tenga en cuenta que la macro utiliza una búsqueda con comodines al principio para encontrar todas las instancias de la palabra «Sección» seguida del «número de punto»

patrón. Si se encuentra una instancia, se amplía en un carácter.

Si ese carácter es un paréntesis de apertura, la selección se extiende hasta que se encuentra un paréntesis de cierre. Este proceso de búsqueda de paréntesis de apertura / cierre continúa, y cuando no se encuentran más conjuntos, se subraya toda la selección extendida. Este proceso continúa hasta que se ha buscado en todo el documento.

_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). Este consejo (497) se aplica a Microsoft Word 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Word (Word 2007 y más tarde) aquí:

link: / wordribbon-Underlining_Section_References_Automatically [Subrayado de referencias de sección automáticamente].