[Eine Seite zurück] [Übersicht] [Eine Seite vor]

Benutzung auf eigene Gefahr !
Keine Garantie für garnichts !

Ungenutzte Textmarken im Dokument löschen

Sprache / Programm: Word ab Version 2000
Beschreibung

Word neigt dazu, ständig neue Textmarken anzulegen, auch wenn diese nicht benutzt werden. Insbesondere, wenn ein neues Inhaltsverzeichnis erstellt wird, bleiben die Textmarken des alten Inhaltsverzeichnisses erhalten. Das Makro überprüft alle Textmarken, ob sie referenziert werden. Unbenutzte Textmarken werden gelöscht.

VBA-Quelltext
Public Sub TextmarkenReduzieren()
    Dim BenutzteTM As String, Ausgabe As String
    Dim TextMarke As Bookmark, Feld As Field, Nr As Long
   
    Nr = 0
    BenutzteTM = ""
    ActiveDocument.Bookmarks.ShowHidden = True
    For Each Feld In ActiveDocument.Fields
        If InStr(" 3 6 12 37 38 68 72 ", " " & Feld.Type & " ") Then
            BenutzteTM = BenutzteTM & Trim(Feld.Code) & " "
            Nr = Nr + 1
            Application.StatusBar = Nr
        End If
    Next Feld
    Ausgabe = Nr & " Felder mit Textmarken" & vbNewLine & ActiveDocument.Bookmarks.Count & " Textmarken vorher" & vbNewLine
       
    Nr = 0
    For Nr = ActiveDocument.Bookmarks.Count To 1 Step -1
        If InStr(1, BenutzteTM, ActiveDocument.Bookmarks(Nr).Name, vbTextCompare) = 0 Then
            ActiveDocument.Bookmarks(Nr).Delete
            Application.StatusBar = Nr
        End If
    Next Nr
   
    MsgBox Ausgabe & ActiveDocument.Bookmarks.Count & " Textmarken nachher"
End Sub
Rückgabewert

Eine Meldungsbox zeigt am Ende die Ergebnisse, die das Makro erzielt hat, mit drei Zahlen an:

    Felder mit Textmarken sind die Felder im Dokument, die tatsächlich auf eine Textmarke verwiesen haben.

    Textmarken vorher sind die Textmarken, die im Dokument vor dem Einsatz des Makros registriert waren und

    Textmarken nachher zeigt, wieviele Textmarken davon übriggeblieben sind.

Anwendungsgebiete, Fehler und Warnungen

Das Programm prüft nicht, ob das Dokument geschützt oder die Datei schreibgeschützt ist. Um sicher zu sein, dass das Programm funktioniert, sollten folgende Schritte unternommen werden:

  • Im Menü 'Extras' 'Optionen' im Kombifeld 'Feldschattierung' den Wert 'Immer' auswählen
  • Gesamtes Dokument speichern
  • Gesamtes Dokument markieren (Strg+A)
  • Alle Felder aktualisieren (F9)
  • Nach Fehlern suchen (in der deutschen Version mit 'Bearbeiten' 'Suchen' und dann den Begriff 'Fehler!' eingeben) Wenn jetzt Fehler gefunden werden, das Makro nicht ausführen und statt dessen die Fehler korrigieren
  • Dokument speichern
  • Im Menü 'Extras' 'Makro' 'Makros' das Makro 'TextmarkenReduzieren' aufrufen
  • Wieder mit Strg+A das gesamte Dokument markieren
  • Alle Felder aktualisieren (F9)
  • Nach Fehlern suchen (in der deutschen Version mit 'Bearbeiten' 'Suchen' und dann den Begriff 'Fehler!' eingeben) Wenn jetzt Fehler gefunden werden, lag's am Makro und das Dokument sollte nicht gespeichert werden.