Linda ha un documento di Word che contiene molti (1.800+) collegamenti ipertestuali a risorse su Internet. Deve convertire tutti i collegamenti ipertestuali in modo che non siano assoluti in un URL sul Web, ma quindi puntino a una posizione relativa su un’unità USB. Il nome del file HTML sarà lo stesso sull’unità USB che era sul Web, è solo la posizione di quel file HTML che sta cambiando. Linda si chiede quale sia il modo migliore per eseguire la conversione.

Il modo migliore è eseguire le conversioni utilizzando una macro. Ogni collegamento ipertestuale nel documento viene archiviato nella raccolta Collegamenti ipertestuali a cui è possibile accedere facilmente tramite VBA. Ciò consente di scorrere la raccolta di collegamenti ipertestuali, esaminare gli indirizzi di ciascuno e quindi apportare modifiche. Ecco un esempio di una tale macro:

Sub ConvertHyperlinks()

Dim sNewBase As String     Dim sFile As String     Dim sNewFile As String     Dim sChanged As String     Dim sNotChanged As String     Dim sTemp As String     Dim J As Integer     Dim h As Hyperlink

sNewBase = "c:\myplace\"

sChanged = ""

sNotChanged = ""



For Each h In ActiveDocument.Hyperlinks         sTemp = h.Address         If Left(sTemp, 5) = "https:" Then             sFile = ""

For J = Len(sTemp) To 2 Step -1                 If Mid(sTemp, J, 1) = "/" Then                     sFile = Right(sTemp, Len(sTemp) - J)

Exit For                 End If             Next J

If sFile > "" Then                 sNewFile = sNewBase & sFile                 h.Address = sNewFile                 sChanged = sChanged & sTemp & " (changed to " & _                   sNewFile & ")" & vbCrLf             Else                 sNotChanged = sNotChanged & sTemp & vbCrLf             End If         Else             sNotChanged = sNotChanged & sTemp & vbCrLf         End If     Next h

Documents.Add     Selection.TypeText "The following hyperlinks were modified:" & vbCrLf     Selection.TypeText sChanged & vbCrLf & vbCrLf     Selection.TypeText "The following hyperlinks were not modified:" & vbCrLf     Selection.TypeText sNotChanged & vbCrLf End Sub

La macro inizia passando attraverso la raccolta di collegamenti ipertestuali. Ogni indirizzo viene assegnato alla variabile sTemp, che viene quindi controllata per vedere se inizia con “https:”. Alcuni collegamenti ipertestuali, ad esempio quelli per gli indirizzi di posta elettronica o per i file esistenti, non iniziano con questi caratteri.

Se viene trovata una corrispondenza, il codice torna indietro nell’indirizzo per trovare la barra finale in quell’indirizzo. Quando viene trovato, sFile è impostato per essere uguale a tutto ciò che è dopo quella barra finale, il che significa che sarà uguale al file HTML.

Una nota a margine interessante qui è che quando crei un collegamento ipertestuale in un documento di Word, Word esegue un po ‘di elaborazione su ciò che digiti rispetto a ciò che è effettivamente memorizzato nel collegamento ipertestuale. Ad esempio, supponiamo di digitare quanto segue in un documento:

www.Tips.net

Word lo riconosce automaticamente come un sito Web e lo converte in un collegamento ipertestuale. (Supponendo, ovviamente, che tu abbia Word impostato per eseguire conversioni URL automatiche.) Se guardi l’indirizzo effettivamente memorizzato nel collegamento ipertestuale creato, vedrai quanto segue:

https://www.Tips.net/

Poiché questo indirizzo inizia con “https:”, la macro lo considererà qualcosa di elaborabile. Tuttavia, il ciclo che torna indietro nell’indirizzo alla ricerca dell’ultimo carattere barra lo troverà proprio alla fine. Ciò significa che sFile sarà vuoto a causa di questo codice:

sFile = Right(sTemp, Len(sTemp) - J)

La lunghezza di sTemp e J è identica per l’ultimo carattere della stringa, quindi sFile finisce per contenere gli 0 caratteri più a destra, il che significa che è vuoto. La conclusione è che non conterrà un nome file, quindi l’URL originale non viene convertito in qualcos’altro.

Per fare in modo che la macro funzioni correttamente sul tuo sistema, ti consigliamo di modificare la stringa sNewBase per contenere tutto ciò che desideri aggiungere all’inizio degli indirizzi elaborati. Notare che, come scritto, la stringa predefinita aggiunta all’inizio di un file è “c: \ myplace \”. Quindi “` link: / privacy “viene modificato in” c: \ myplace \ privacy “. Questo indirizzo convertito non è, rigorosamente, un collegamento ipertestuale relativo. Un collegamento ipertestuale relativo non avrebbe i caratteri c: \ all’inizio, quindi finirebbe per essere qualcosa come “\ myplace \ privacy”. Ancora una volta, puoi modificare il valore di sNewBase in qualsiasi cosa tu voglia in modo che i tuoi collegamenti ipertestuali convertiti abbiano l’aspetto che desideri.

Non ci vuole molto per eseguire la macro; è molto veloce, indipendentemente dal numero di collegamenti ipertestuali presenti nel documento. Quando la macro è completa, crea un nuovo documento che mostra i collegamenti ipertestuali modificati e quelli non modificati.

_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.

https: – wordribbon.tips.net-WordTipsMacros [Fare clic qui per aprire quella pagina speciale in una nuova scheda del browser] `.

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

(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (12931) si applica a Microsoft Word 2007, 2010, 2013, 2016, 2019 e Word in Office 365.