Supprimer les styles inutilisés
TDF LibreOffice Document Liberation Project Blogs communautaires Weblate Nextcloud Redmine Ask LibreOffice Donner
Description
Le programme présenté ici a pour objet de montrer comment supprimer les styles personnalisés inutilisés dans un document.
Le programme commence par accéder aux familles de style. Selon le type de document ces dernières peuvent être CharacterStyles, ParagraphStyles, FrameStyles, PageStyles, NumberingStyles, CellStyles, ShapeStyles.[1]
L'exemple recherche ici dans les styles de cellules d'un classeur. On parcourt donc la collection CellStyles. Pour chaque élément, on utilise les méthodes isUserDefined et isInUse afin de tester s'il s'agit d'un style personnalisé utilisé ou non.[2]
Seule particularité : on parcourt la collection "à l'envers" de n vers zéro pour éviter les problèmes (puisqu'on supprime des éléments de la collection parcourue).
Code
En 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 "Fini!"
Else
MsgBox "Famille de style non trouvée..."
End If
End Sub ' delete_unused_styles
Notes
- ↑ Voir la documentation de l'API pour le service StyleFamilies
- ↑ Voir la documentation de l'API pour l'interface XStyle