von quotsi » Mo, 03.09.2018 19:03
Hallo Experten, hallo Stephan,
Ich beziehe meine Fortbildung momentan aus "OO-Makros Erklärt 3_0_deutsch.odt". Aber dieses Werk überfordert mich diesbezüglich Ungebildeten.
Ich habe ein Makro probiert:
Code: Alles auswählen
REM ***** BASIC *****
Sub AlleVerzeichnisseZeigen
DIM oIndexes 'Alle existierenden Verzeichnisse
Dim oIndex 'Verzeichnis, jeweils ausgewählt
DIM i 'Laufvariable, numeriert die Verzeichnisse
Dim bIndexFound As Boolean 'Flag zur Kennzeichnung, ob ein TOC gefunden wurde
Dim iLevel% 'Iteration über die Ebenen in der Eigenschaft LevelFormat
Dim iCol% 'Iteration über die Spalten der jeweiligen Ebene
Dim iProp% 'Iteration über die Properties der jeweiligen Spalte
Dim oLevel 'Ebenenobjekt
Dim oCol 'Spaltenobjekt
Dim s$
REM Findet ein Verzeichnis, falls es existiert.
oIndexes = ThisComponent.getDocumentIndexes() 'Liste aller Verzeichnisse
bIndexFound = False
For i = 0 To oIndexes.getCount() - 1
oIndex = oIndexes.getByIndex(i)
'Überprüfung, welches Verzeichnis.
print i, oIndex.title
' If oIndex.supportsService("com.sun.star.text.ContentIndex") Then
' bIndexFound = True
' Exit For
' End If
Next
End Sub
Meine Fragen:
1. Welche Entsprechung wäre für ein Stichwortverzeichnis zutreffend (ContentIndex = Inhaltsverzeichnis), damit ich die Ausstiegsroutine richtig programmieren kann? Bisher habe ich oIndex.title ="Stichwortverzeichnis" genommen. Das geht, aber nur, wenn man den vorgegebenen Titel nicht verändert. Folglich wäre ein fester Fachbegriff von com.sun.star.text wesentlich sicherer).
Ich konnte übrigens nachweisen, dass bei drei Verzeichnissen in einem vorgegebenen Dokument (mit 1. Stichwortverzeichnis, 2. Inhaltsverzeichnis, 3. Stichwortverzechnis) die Laufvariable richtig von 0 bis 2 geht und der genau Reihenfolge der Verzeichnisse im Text anspricht (0 und 2 waren die Stichwortverzeichnisse, 1 das inhaltsverzeichnis)
2. Welcher Begriff wäre zur Abfrage der "properties" geeignet, damit ich an den Inhalt des Stichwortverueichnisses ran komme? "oIndex.oProp...." war bisher nicht geeignet.
Danke für Anregung/Fehlerkorrektur/Hilfe
Hallo Experten, hallo Stephan,
Ich beziehe meine Fortbildung momentan aus "OO-Makros Erklärt 3_0_deutsch.odt". Aber dieses Werk überfordert mich diesbezüglich Ungebildeten.
Ich habe ein Makro probiert:
[code]REM ***** BASIC *****
Sub AlleVerzeichnisseZeigen
DIM oIndexes 'Alle existierenden Verzeichnisse
Dim oIndex 'Verzeichnis, jeweils ausgewählt
DIM i 'Laufvariable, numeriert die Verzeichnisse
Dim bIndexFound As Boolean 'Flag zur Kennzeichnung, ob ein TOC gefunden wurde
Dim iLevel% 'Iteration über die Ebenen in der Eigenschaft LevelFormat
Dim iCol% 'Iteration über die Spalten der jeweiligen Ebene
Dim iProp% 'Iteration über die Properties der jeweiligen Spalte
Dim oLevel 'Ebenenobjekt
Dim oCol 'Spaltenobjekt
Dim s$
REM Findet ein Verzeichnis, falls es existiert.
oIndexes = ThisComponent.getDocumentIndexes() 'Liste aller Verzeichnisse
bIndexFound = False
For i = 0 To oIndexes.getCount() - 1
oIndex = oIndexes.getByIndex(i)
'Überprüfung, welches Verzeichnis.
print i, oIndex.title
' If oIndex.supportsService("com.sun.star.text.ContentIndex") Then
' bIndexFound = True
' Exit For
' End If
Next
End Sub[/code]
Meine Fragen:
1. Welche Entsprechung wäre für ein Stichwortverzeichnis zutreffend (ContentIndex = Inhaltsverzeichnis), damit ich die Ausstiegsroutine richtig programmieren kann? Bisher habe ich oIndex.title ="Stichwortverzeichnis" genommen. Das geht, aber nur, wenn man den vorgegebenen Titel nicht verändert. Folglich wäre ein fester Fachbegriff von com.sun.star.text wesentlich sicherer).
Ich konnte übrigens nachweisen, dass bei drei Verzeichnissen in einem vorgegebenen Dokument (mit 1. Stichwortverzeichnis, 2. Inhaltsverzeichnis, 3. Stichwortverzechnis) die Laufvariable richtig von 0 bis 2 geht und der genau Reihenfolge der Verzeichnisse im Text anspricht (0 und 2 waren die Stichwortverzeichnisse, 1 das inhaltsverzeichnis)
2. Welcher Begriff wäre zur Abfrage der "properties" geeignet, damit ich an den Inhalt des Stichwortverueichnisses ran komme? "oIndex.oProp...." war bisher nicht geeignet.
Danke für Anregung/Fehlerkorrektur/Hilfe