Ich plage mich mit meiner Unkenntnis, ein Makro zu basteln, welches alle Stichworte aus einem Dokument (oder vielleicht noch mehr: auch ihre Eigenschaften) auflistet.
Ausgegangen bin ich von dem Makro von P.Eberlein aus http://www.ooowiki.de/KonkordanzDatei.html, welches alle Stichworte tilgt.
Ich habe dispose() , den Löschbefehl, dann fortgelassen. Um überhaupt das Makro zu verstehen und die Übersicht beim Experimentieren zu behalten, habe ich print-Befehle für die Laufvariablen eingefügt.
Dabei stellte ich fest, dass die äußere Schleife nur für das Verzeichnis (Stichwort- und weitere ??) gedacht ist, denn sie bleibt bei meinem Beispiel mit nur einem Stichwortverzeichnis auf dem Startwert (=0) stehen. Den Zweifel, dass eventuell auch andere Verzeichnisse (Inhaltsverzeichnis ?) betroffen sein könnten, konnte ich experimentell ausschließen.
Die innere Schleife zählte bis 38, d.h. alle im Text vorkommenden Stichworte wurden einmal getroffen. Es handelt sich also keineswegs um Treffer der Einträge im Verzeichnis, denn da werden fast alle Stichworte zusammengefaßt.
Code: Alles auswählen
Sub AlleStichworteZeigen
DIM Tr1
DIM Tr2
DIM Tr3
DIM Stich
Tr1 = " : "
Tr2 = "("
Tr3 = ")"
indexes = ThisComponent.getDocumentIndexes()
for i=0 to indexes.count-1
index = indexes(i)
if index.supportsService("com.sun.star.text.DocumentIndex") then
marks = index.DocumentIndexMarks
for j=lBound(marks()) to uBound(marks())
print i ; Tr1 ; Tr2 ; j ; Tr3 ;
REM Stich=marks(j).getString
next
End If
next
End Sub
Wie kann ich mit welchem Befehl den zum jeweiligen Index gehörenden Feldinhalt (=das Stichwort) auslesen?
Danke fürs Mitdenken