Versionen: Word 97, 2000, 2002/XP und 2003
Wie kann man per Makro sofort alle Hyperlinks aus einem Dokument entfernen. Da ich häufiger HTML-Seiten zur Bearbeitung in Word erhalte und da diese Dateien oft voll von Hyperlinks sind, wäre ich sehr an einer Lösung interessiert.
Ja, auch in Word können Sie ein Makro anlegen, das auf Kommando alle Hyperlinks entfernt. Worauf Sie dabei zu achten haben, erklärt die folgende Anleitung:
- Starten Sie Word und wechseln Sie mit Alt + F11 in den Visual Basic-Editor.
- Markieren Sie im Projekt Explorer den Projektnamen "Normal" (für das VBA-Projekt der globalen Dokumentvorlage NORMAL.DOT).
- Wählen Sie das Menü Einfügen-Modul an.
- In das daraufhin geöffnete Codefenster geben Sie folgende Prozedur ein:
Dim i As Long
On Error Resume Next
With ActiveDocument.Hyperlinks
For i = .Count To 1 Step -1
.Item(i).Delete
Next i
End With
If ActiveDocument.Hyperlinks.Count = 0 Then
MsgBox "Alle Hyperlinks entfernt."
Else
MsgBox "Makro beendet; es konnten aber " & _
"nicht alle Hyperlinks entfernt werden."
End If
End Sub
[font=arial, helvetica][size=-1]
- Verlassen Sie den Visual Basic-Editor per Datei-Schließen und zurück zu Microsoft Word.
Das Besondere am Makrocode ist die Art und Weise, wie die Hyperlinks des aktiven Dokuments abgearbeitet werden. Dass Sie dafür eine For...Next-Schleife einsetzen, verwundert nicht. Bemerkenswert ist nur, dass Sie die Hyperlinks vom letzten bis zum ersten - und nicht umgekehrt - durchlaufen. Nur so ist gewährleistet, dass Word den nächsten Hyperlink auch findet, nachdem der vorherige gelöscht worden ist. Anderenfalls würde Word nur die Hälfte aller Hyperlinks entfernen.
Das lässt sich ganz einfach erklären: Angenommen, Ihr Dokument enthält 20 Hyperlinks. Wenn Sie beim ersten Hyperlink beginnen und ihn löschen, enthält das Dokument nur noch 19 Hyperlinks. Nach dem zehnten gelöschten Hyperlink, bleiben nur noch 10 übrig, in der For-Schleife würden Sie bei einer aufsteigenden Abarbeitung dann aber versuchen, den 11. Hyperlink zu löschen. Den gibt es für Word nicht mehr und somit verbleiben die übrigen Links im Dokument. - Nur bei einer absteigenden Bearbeitung - im Beispiel von 20 bis 1 - löschen Sie immer den letzten Hyperlink, den es gerade gibt.
Als Alternative bietet sich normalerweise eine For Each...Next-Schleife an, bei der es eigentlich keine Rolle spielt, wie viele Elemente vorhanden sind. Offensichtlich unterscheiden sich Hyperlinks aber von herkömmlichen Auflistungen, weshalb auch die For Each...Next-Lösung nur die Hälfte aller Hyperlinks entfernt.
Übernommen von SmartTools
[/size][/font]