Hier ist ein fertiges Makro aus https://www.uni-due.de/~abi070/ooo.html, welches das Gleiche erledigt wie die Datei, lediglich werden die Pfade nicht in ein Tabellen- sondern ein Textdokument ausgegeben:
Code: Alles auswählen
Sub DisplayPathSettings
Dim oPathSettings ' Der Service PathSettings.
Dim oPropertySetInfo ' Zugriff auf die Service-Eigenschaften.
Dim aProperties ' Enthält alle Service-Eigenschaften.
Dim oDoc ' Referenz auf ein neu erstelltes Dokument.
Dim oText ' Das Text-Objekt des Dokuments.
Dim oCursor ' Cursor im Text-Objekt.
Dim oProperty ' Eine Service-Eigenschaft.
Dim cPropertyName$ ' Der Name der Eigenschaft.
Dim cPropertyValue ' Der Wert der Eigenschaft kann ein Array sein oder eine Reihe
' von Strings.
Dim aPaths ' Die Pfade als Array.
Dim cPath$ ' Ein einzelner Pfad aus dem Array.
Dim j As Integer ' Indexvariable.
Dim i As Integer ' Indexvariable.
oPathSettings = CreateUnoService("com.sun.star.util.PathSettings")
' Beispiel, wie man die gewünschte einzelne Eigenschaft ermittelt.
'oPathSettings.Work
' Holt die Information über die Eigenschaften der Pfadeinstellungen.
oPropertySetInfo = oPathSettings.getPropertySetInfo()
' Bildet ein Array der Eigenschaften.
aProperties = oPropertySetInfo.getProperties()
' Erzeugt ein Dokument zur Datenausgabe.
oDoc = StarDesktop.loadComponentFromURL("private:factory/swriter", _
"_blank", 0, Array())
oText = oDoc.getText()
oCursor = oText.createTextCursor()
oText.insertString(oCursor, "Pfadeinstellungen", False)
oCursor.ParaStyleName = "Überschrift 1"
oText.insertControlCharacter(oCursor, _
com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
' Iteriert durch das Eigenschaften-Array
' und schreibt die Informationen über jede Eigenschaft in die Ausgabedatei.
For i = LBound(aProperties) To UBound(aProperties)
oProperty = aProperties(i)
cPropertyName = oProperty.Name
cPropertyValue = oPathSettings.getPropertyValue(cPropertyName)
oText.insertString(oCursor, cPropertyName, False)
oCursor.ParaStyleName = "Überschrift 3"
oText.insertControlCharacter(oCursor, _
com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
If IsArray(cPropertyValue) Then
' Manchmal werden mehrere URLs als Array zurückgegeben.
aPaths = cPropertyValue
ElseIf Len(cPropertyValue) > 0 Then
' Manchmal werden mehrere URLs durch Semikolon getrennt.
' Sie werden in ein String-Array gesplittet.
aPaths = Split(cPropertyValue, ";")
Else
aPaths = Array()
End If
For j = LBound(aPaths) To UBound(aPaths)
cPath = aPaths(j)
oText.insertString(oCursor, cPath, False)
oText.insertControlCharacter(oCursor, _
com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
Next
oText.insertControlCharacter(oCursor, _
com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
Next i
End Sub
Gruß
Stephan