Passaggio da collegamenti ipertestuali assoluti a relativi (Microsoft Word)
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.