Nicht verwendete Vorlagen löschen
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Spende
Beschreibung
Das hier gezeigte Makro soll zeigen, wie nicht verwendete Vorlagen aus einem Dokument entfernt werden.
Das Makro startet mit dem Zugriff auf die "Vorlagenfamilie". Abhängig vom Dokumententyp können diese Zeichenvorlagen, Absatzvorlagen, Rahmenvorlagen, Seitenvorlagen, Nummerierungsvorlagen, Zellenvorlagen oder Profilvorlagen sein.[1]
Der folgende Code durchsucht die Zellvorlagen eines Calc Tabellenblattes, in welcher die Sammlung der Zellvorlagen' duchgegangen wird. Für jedes Element werden die Methoden isUserDefined und isInUse verwendet, um zu testen, ob es als allgemeine Vorlage verwendet wird oder nicht.[2]
Die einzige Besonderheit ist, dass wir "rückwärts" von n bis 0 arbeiten um Probleme zu umgehen (wir löschen Elemente aus der durchsuchten Kollektion).
Code
In LibreOffice Basic:
Option Explicit
Sub delete_unused_styles ()
Dim oStylesF As Object
Dim oStyles As Object
Dim oStyle As Object
Dim i As Integer
oStylesF = ThisComponent.getStyleFamilies
If oStylesF.hasByName("CellStyles") Then
oStyles = oStylesF.getByName("CellStyles")
For i = UBound(oStyles.ElementNames) To 0 Step -1
oStyle = oStyles.getByName(oStyles.ElementNames(i))
If oStyle.isUserDefined And Not(oStyle.isInUse) Then
oStyle = Nothing
oStyles.removeByName(oStyles.ElementNames(i))
End If
Next i
MsgBox "Fertig!"
Else
MsgBox "Keine User-definierten Vorlagen gefunden..."
End If
End Sub ' delete_unused_styles
Hinweise
- ↑ Siehe die API Dokumentation für den StyleFamilies Dienst.
- ↑ Siehe die API Dokumentation des XStyle Interfaces.