I documenti di Word di Jim hanno molti URL che non sono collegamenti ipertestuali attivi.

Ogni URL è “racchiuso tra parentesi” dal testo [lt] e [gt]. Quindi, ad esempio, un URL potrebbe apparire come [lt] `link: / https: – www.tips.net% 5Bgt% 5D. Jim si chiede se esiste un modo in cui una macro possa trovare il testo tra i codici delle parentesi, creare un collegamento ipertestuale dal testo trovato e quindi eliminare i codici delle parentesi.

La ricerca di tali istanze è un gioco da ragazzi se si utilizzano le funzionalità dei caratteri jolly di Trova e sostituisci. Tutto quello che devi fare è cercare “[lt]` * [gt] “(senza virgolette) e assicurarti di specificare che stai effettuando una ricerca con caratteri jolly. La parte difficile consiste nell’eliminare i codici delle parentesi e trasformare qualsiasi cosa si trovasse tra di loro in un collegamento ipertestuale attivo.

Per fare tutto questo in un passaggio, devi davvero usare una macro, come sospettava Jim. Anche così, la macro non deve essere terribilmente complessa.

Ecco un esempio di quello che farà il trucco:

Sub AddHyperLinksAndClearBrackets()

Selection.Find.ClearFormatting     With Selection.Find         .Text = "\[lt\]*\[gt\]"

.Forward = True         .Wrap = wdFindContinue         .Format = False         .MatchCase = False         .MatchWholeWord = False         .MatchWildcards = True         .MatchSoundsLike = False         .MatchAllWordForms = False     End With

Selection.Find.Execute     Do While Selection.Find.Found         Selection = Mid(Selection, 5, Len(Selection) - 8)

ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _           Address:=Selection, SubAddress:=""

Selection.Find.Execute     Loop End Sub

Nota che ogni volta che viene trovata una corrispondenza (nel ciclo Do While), ci sono due comandi che fanno la maggior parte del lavoro. Il primo è questo:

Selection = Mid(Selection, 5, Len(Selection) - 8)

Questa riga di comando imposta la selezione uguale alla selezione meno i codici parentesi iniziale e finale. In effetti, cancella i codici delle parentesi, lasciando tutto ciò che era nel mezzo. Questo è un piccolo trucco intelligente che preclude la necessità di eseguire un’operazione di ricerca e sostituzione separata per eliminare i codici delle parentesi.

Dopo la rimozione dei codici delle parentesi, viene eseguita la riga successiva:

ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _           Address:=Selection, SubAddress:=""

Questa riga converte la selezione rimanente (che dovrebbe essere un collegamento ipertestuale di solo testo) in un collegamento ipertestuale attivo.

La macro è breve, piacevole e viene eseguita in modo estremamente rapido, indipendentemente dal numero di collegamenti ipertestuali codificati presenti nel 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 (672) si applica a Microsoft Word 2007, 2010, 2013 e 2016.