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

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

Indexeinträge für das Stichwortverzeichnis erstellen

Sprache / Programm: Word ab Version 2000
Beschreibung

Word bietet mehrere Möglichkeiten an, Stichwortverzeichnisse zu erstellen. Es besteht z.B. die Möglichkeit, eine Datei mit Stichwörtern anzulegen, die Word dann in einem Dokument sucht und im Stichwortverzeichnis einträgt.

Der Nachteil ist allerdings, dass hier nie nach dem Sinn eines Eintrages gefragt wird und ob er thematisch relevant ist.

Das beste bleibt es also, Stichwortlisten mit Hand anzulegen. Das folgende Makro hilft dabei, indem es das markierte Stichwort im ganzen Text sucht und an jeder Stelle fragt, ob ein Eintrag in das Stichwortverzeichnis erfolgen soll. Befindet sich das Stichwort in einer Überschrift, wird die zugehörige Seitenzahl im Stichwortverzeichnis automatisch fett formatiert.

VBA-Quelltext
Public Sub Stichwort()
    Dim Fett As Boolean, AllesAnzeigen As Boolean, Überschrift
    Dim Eintragen As Integer, Wort As String, Anfang As Long
   
    Anfang = Selection.Range.Start
   
    Eintragen = True
    Wort = Trim(Selection.Text)
    Selection.StartOf wdWord
    AllesAnzeigen = ActiveWindow.View.ShowAll
   
    Selection.Find.ClearFormatting
   
    Do
       
        Selection.Find.Execute Wort, Wrap:=wdFindContinue
       
        Eintragen = MsgBox("Eintragen ?", vbYesNoCancel)
        If (Eintragen = vbCancel) Then Exit Do
       
        If (Eintragen = vbYes) Then
            Fett = False
            For Each Überschrift In Array("Überschrift*", "Zwischentitel", "Anhang*")
                If (Selection.ParagraphFormat.Style Like Überschrift) Then
                    Fett = True
                    Exit For
                End If
            Next Überschrift
   
            Selection.EndOf wdWord
            ActiveDocument.Indexes.MarkEntry Selection.Range, Wort, Wort, , , , Fett, False
            ActiveWindow.View.ShowAll = AllesAnzeigen
        End If
       
        Selection.Find.Execute
       
    Loop Until Selection.Range.Start = Anfang
    ActiveDocument.Range(Anfang, Anfang).Select
   
End Sub
Argumente der Funktion/Prozedur

Hinweis

Im Programmcode befindet sich folgende Zeile:

<CODE>For Each Überschrift In Array("Überschrift*", "Zwischentitel", "Anhang*")<CODE>

Hier wird gekennzeichnet, dass alle Formatvorlagen, die mit 'Überschrift' oder 'Anhang' sowie die Formatvorlage 'Zwischentitel' beginnen, als Überschrift betrachtet werden und die zugehörige Seitenzahl automatisch fett formatiert wird.

Die Anweisung kann beliebig geändert oder erweitert werden.

Anwendungsgebiete, Fehler und Warnungen

Das Programm stoppt nicht automatisch und manuelle Trennungen in Begriffen werden nicht erkannt.