Mit Word können Sie in einem Dokument Links zu einem externen Dokument oder zu anderen Stellen im aktuellen Dokument herstellen. Peter sucht nach einer Möglichkeit, nur die internen Links in einem Dokument zu zählen, und fragt sich, ob es eine Möglichkeit gibt, dies zu tun.

Sie können dies nur tun, indem Sie ein Makro verwenden, um jeden Hyperlink in Ihrem Dokument zu durchlaufen. Glücklicherweise ist dies einfach, indem Sie die Elemente in der Hyperlinks-Sammlung untersuchen. Jedes Hyperlink-Objekt verfügt über eine Vielzahl von Eigenschaften, die abhängig von den Eigenschaften des Links festgelegt werden können. Von besonderer Bedeutung sind die Eigenschaften Address und SubAddress.

Die Address-Eigenschaft (wie der Name schon sagt) ist die Zieladresse für den Link. Normalerweise ist dies so etwas wie eine URL (wie in /), aber es kann auch der Name einer Datei auf einem Laufwerk sein, auf das von Ihrem System aus zugegriffen werden kann, oder eine E-Mail-Adresse (wie in mailto: [email protected]). Da die Address-Eigenschaft mehrere Zwecke haben kann, können Sie nicht speziell prüfen, ob aussagekräftige Zeichen vorhanden sind, z. B. das Präfix „http“. Wenn das Präfix fehlt, kann sich der Link immer noch außerhalb des aktuellen Dokuments befinden, da er möglicherweise auf eine andere Datei auf Ihrem System verweist.

Es gibt jedoch einen Fall, in dem das Adressfeld leer ist – wenn der Link zu einem Lesezeichen im aktuellen Dokument besteht. Wenn es leer ist, wird die SubAddress-Eigenschaft auf den Namen des Lesezeichens festgelegt, auf das im Link verwiesen wird. Wenn sich der Link zu einem bestimmten Lesezeichen in einem anderen Dokument befindet, werden natürlich sowohl die Eigenschaften Address als auch SubAddress festgelegt.

Sehen Sie sich das folgende kurze Makro an, um sich ein Bild von den Informationen zu machen, die mit jedem Hyperlink-Objekt gespeichert sind. Es durchläuft jeden Link und zeigt Informationen zu jedem Link an.

Sub LinkInfo()

Dim h As Hyperlink     Dim sTemp As String

For Each h In ActiveDocument.Hyperlinks         sTemp = h.TextToDisplay & vbCrLf         sTemp = sTemp & h.Address & vbCrLf         sTemp = sTemp & h.SubAddress         MsgBox sTemp     Next h End Sub

Die einfachste Methode zum Bestimmen der Anzahl interner Links in einem Dokument (dh Links zu Lesezeichen im aktuellen Dokument) besteht darin, die Address-Eigenschaft jedes Hyperlink-Objekts zu untersuchen.

Wenn die Eigenschaft leer ist, können Sie davon ausgehen, dass der Link intern ist.

Sub InternalLinks1()

Dim h As Hyperlink     Dim lInternal As Long

lInternal = 0     If ActiveDocument.Hyperlinks.Count > 0 Then         For Each h In ActiveDocument.Hyperlinks             If h.Address = "" Then lInternal = lInternal + 1         Next hp     End If     MsgBox lInternal & " hyperlinks are internal" _       & " out of a total of " & ActiveDocument.Hyperlinks.Count End Sub

Wenn Sie eine Liste der tatsächlichen Ziele für die internen Links zusammenstellen möchten, ist es eine einfache Ergänzung des Makros, in der For Each-Schleife nach jeder SubAddress-Eigenschaft zu suchen und sie zu dem hinzuzufügen, was Sie am Ende von angezeigt haben das Makro.

Natürlich sind Hyperlinks nicht darauf beschränkt, nur im Hauptteil des Dokuments zu erscheinen. Sie können auch Hyperlinks in anderen Dokumentelementen wie Kopf- und Fußzeilen, Endnoten und Textfeldern haben. Die folgende Variante des Makros zählt alle Links, die in einem dieser Bereiche (StoryRanges) im Dokument gefunden werden.

Sub InternalLinks2()

Dim h As Hyperlink     Dim lInternal As Long     Dim lTotal As Long     Dim aStory As Range

lTotal = 0     lInternal = 0     For Each aStory In ActiveDocument.StoryRanges         lTotal = lTotal + aStory.Hyperlinks.Count         If aStory.Hyperlinks.Count > 0 Then             For Each h In aStory.Hyperlinks                 If h.Address = "" Then lInternal = lInternal + 1             Next h         End If     Next aStory     MsgBox lInternal & " hyperlinks are internal" _       & " out of a total of " & lTotal End Sub

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

WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.

(Microsoft Word ist die beliebteste Textverarbeitungssoftware der Welt.) Dieser Tipp (12814) gilt für Microsoft Word 2007, 2010 und 2013.