Macros/General/004/es
TDF LibreOffice Document Liberation Project Blogs comunitarios Weblate Nextcloud Redmine Ask LibreOffice Donar
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
- ↑ Consulte la Documentación de la API sobre el servicio StyleFamilies
- ↑ Consulte la documentación de la API sobre la interfaz XStyle.