Wechsel von absoluten zu relativen Hyperlinks (Microsoft Word)
Linda hat ein Word-Dokument, das viele (1.800+) Hyperlinks zu Ressourcen im Internet enthält. Sie muss alle Hyperlinks konvertieren, damit sie nicht absolut zu einer URL im Web sind, sondern auf einen relativen Speicherort auf einem USB-Laufwerk verweisen. Der Name der HTML-Datei ist auf dem USB-Laufwerk derselbe wie im Web. Es ändert sich nur der Speicherort dieser HTML-Datei. Linda fragt sich, wie sie die Konvertierung am besten durchführen kann.
Der beste Weg ist, die Konvertierungen mit einem Makro durchzuführen. Jeder Hyperlink in Ihrem Dokument wird in der Hyperlinks-Sammlung gespeichert, auf die über VBA problemlos zugegriffen werden kann. Auf diese Weise können Sie die Sammlung von Hyperlinks schrittweise durchlaufen, die Adressen für die einzelnen Links überprüfen und dann Änderungen daran vornehmen. Hier ist ein Beispiel für ein solches Makro:
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
Das Makro beginnt mit einem Schritt durch die Hyperlinks-Auflistung. Jede Adresse wird der Variablen sTemp zugewiesen, die dann überprüft wird, ob sie mit „https:“ beginnt. Einige Hyperlinks, z. B. für E-Mail-Adressen oder zu vorhandenen Dateien, beginnen nicht mit diesen Zeichen.
Wenn eine Übereinstimmung gefunden wird, geht der Code rückwärts durch die Adresse, um den endgültigen Schrägstrich in dieser Adresse zu finden. Wenn es gefunden wird, wird sFile so eingestellt, dass es nach diesem letzten Schrägstrich alles entspricht, was bedeutet, dass es der HTML-Datei entspricht.
Eine interessante Randnotiz hier ist, dass Word beim Erstellen eines Hyperlinks in einem Word-Dokument ein wenig verarbeitet, was Sie eingeben und was tatsächlich im Hyperlink gespeichert ist. Angenommen, Sie geben Folgendes in ein Dokument ein:
www.Tips.net
Word erkennt dies automatisch als Website und konvertiert es in einen Hyperlink. (Vorausgesetzt natürlich, Sie haben Word für automatische URL-Konvertierungen eingerichtet.) Wenn Sie sich die Adresse ansehen, die tatsächlich im erstellten Hyperlink gespeichert ist, sehen Sie Folgendes:
https://www.Tips.net/
Da diese Adresse mit „https:“ beginnt, wird sie vom Makro als verarbeitbar angesehen. Die Schleife, die rückwärts durch die Adresse geht und nach dem letzten Schrägstrich sucht, findet sie jedoch ganz am Ende. Dies bedeutet, dass sFile aufgrund des folgenden Codes leer ist:
sFile = Right(sTemp, Len(sTemp) - J)
Die Länge von sTemp und J ist für das letzte Zeichen in der Zeichenfolge exakt gleich, sodass sFile am Ende die 0 Zeichen ganz rechts enthält, was bedeutet, dass es leer ist. Unter dem Strich enthält es keinen Dateinamen, sodass die ursprüngliche URL nicht in etwas anderes konvertiert wird.
Damit das Makro auf Ihrem System ordnungsgemäß funktioniert, müssen Sie die sNewBase-Zeichenfolge so ändern, dass sie alles enthält, was Sie am Anfang der verarbeiteten Adressen hinzufügen möchten. Beachten Sie, dass die am Anfang einer Datei hinzugefügte Standardzeichenfolge wie geschrieben „c: \ myplace \“ ist. Daher wird „` link: / privacy „in“ c: \ myplace \ privacy „geändert. Diese konvertierte Adresse ist streng genommen kein relativer Hyperlink. Ein relativer Hyperlink hätte am Anfang nicht die Zeichen c: \, so dass er so etwas wie „\ myplace \ privacy“ wäre. Auch hier können Sie den Wert von sNewBase so ändern, dass er beliebig ist, sodass Ihre konvertierten Hyperlinks so aussehen, wie Sie es möchten.
Das Ausführen des Makros dauert nicht lange. Es ist sehr schnell, unabhängig davon, wie viele Hyperlinks sich in Ihrem Dokument befinden. Wenn das Makro vollständig ist, wird ein neues Dokument erstellt, in dem die geänderten und die nicht geänderten Hyperlinks angezeigt werden.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
https: – wordribbon.tips.net-WordTipsMacros [Klicken Sie hier, um diese spezielle Seite in einem neuen Browser-Tab zu öffnen] `.
WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.
(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (12931) gilt für Microsoft Word 2007, 2010, 2013, 2016, 2019 und Word in Office 365.