Jump to content

Macros/General/004/es

From The Document Foundation Wiki
This page is a translated version of the page Macros/General/004 and the translation is 100% complete.


Descripción

La macro presente está destinada a mostrar cómo eliminar los estilos personalizados no utilizados de un documento.

La macro comienza accediendo a las "familias de estilos". Dependiendo del tipo de documento, estos pueden ser de Caracter , de Párrafo, de Marco, de Página,de Lista, de Celda o de Objeto. [1].

El código busca estilos de celda en una hoja de cálculo de Calc, el la familia de CellStyles mediante un bucle. Para cada elemento, los métodos isUserDefined y isInUse se utilizan para comprobar si es un estilo de usuario y si está en uso o no .[2]

La única particularidad es que navegamos por la colección "hacia atrás" de n a cero para evitar problemas (ya que eliminamos elementos de la colección ).

Código

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 "¡Copmpletado!"
    Else
        MsgBox "No se ha encontrado estilos definidos por el usuario..."
    End If
    
End Sub ' delete_unused_styles

Notas