Agnes ha chiesto se esiste un modo per sottolineare automaticamente tutte le occorrenze della parola “Sezione” e qualsiasi informazione accessoria che segue la parola.

Ad esempio, un documento potrebbe contenere testo come “Sezione 2.3 (b) (i)”

o “Sezione 5.21” o “Sezione 12.12 (a)” e Agnes vuole trovare questo testo e che sia sottolineato.

Ci sono un paio di cose da provare. Prima di tutto, potresti fare uno standard Trova e sostituisci, ma solo se puoi in qualche modo rendere il testo un po ‘più “standard”. Senza una sorta di modello che può essere abbinato, è virtualmente impossibile eseguire una ricerca e sostituzione che trovi tutte le possibili istanze del testo.

Una possibilità, tuttavia, è registrare una macro che esamina tutte le possibilità. Non sarebbe necessariamente una semplice macro, in quanto dovrebbe trovare la parola “Sezione” seguita immediatamente da uno spazio, una cifra, un punto, più cifre, e poi (facoltativamente) tutto fino a includere una parentesi di chiusura. Questa è un’analisi del testo che deve essere eseguita.

Il punto di partenza è una ricerca con caratteri jolly. La seguente frase di ricerca troverà la parola Sezione seguita da un “numero punto numero”

modello:

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

Se questo modello di ricerca viene utilizzato in una macro, la macro può, dopo ogni ricerca riuscita del testo, iniziare ad espandere ciò che è stato trovato e vedere se contiene caratteri parentetici. La seguente macro eseguirà questa operazione.

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

Nota che la macro usa una ricerca con caratteri jolly all’inizio per trovare tutte le istanze della parola “Sezione” seguita dal “numero punto numero”

modello. Se viene trovata un’istanza, viene estesa di un carattere.

Se quel carattere è una parentesi aperta, la selezione viene estesa fino a quando non viene trovata una parentesi chiusa. Questo processo di ricerca delle parentesi di apertura / chiusura viene continuato e quando non si trovano più set viene sottolineata l’intera selezione estesa. Questo processo continua finché non è stata eseguita la ricerca nell’intero documento.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti WordTips), ho preparato una pagina speciale che include informazioni utili.

WordTips è la tua fonte di formazione economica su Microsoft Word.

(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (11516) si applica a Microsoft Word 2007, 2010, 2013, 2016, 2019 e Word in Office 365. Puoi trovare una versione di questo suggerimento per vecchia interfaccia del menu di Word qui: