Macros

From The Document Foundation Wiki
Jump to: navigation, search

Supprimer les styles inutilisés

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).

option explicit

Sub PysRazStyles

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

Notes :

  1. Voir la documentation de l'API pour le service StyleFamilies
  2. Voir la documentation de l'API pour l'interface XStyle