Ajuda del LibreOffice 25.2
Mitjançant l'ús dels llenguatges de programació BASIC i Python, és possible escriure macros que apliquen formats a intervals de cel·les al Calc.
El fragment de codi següent crea una Sub anomenada FormatCellBorder que aplica nous formats a les vores d'un determinat rang d'adreces al full de Calc actual.
    Sub FormatCellBorder(cellAddress as String, newStyle as Byte, newWidth as Long, Optional newColor as Long)
        ' Crea l'estructura UNO que emmagatzemarà el nou format de línia
        Dim lineFormat as New com.sun.star.table.BorderLine2
        lineFormat.LineStyle = newStyle
        lineFormat.LineWidth = newWidth
        If Not IsMissing(newColor) Then lineFormat.Color = newColor
        ' Obté la cel·la objectiu
        Dim oCell as Object
        Set oCell = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName(cellAddress)
        ' Aplica el format nou a totes les vores
        oCell.TopBorder = lineFormat
        oCell.RightBorder = lineFormat
        oCell.LeftBorder = lineFormat
        oCell.BottomBorder = lineFormat
    End Sub
  La Sub descrita anteriorment pren quatre arguments:
cellAddress és una cadena que indica l'interval que s'ha de formatar en el format "A1".
newStyle és un valor enter que correspon a l'estil de la línia de vora (veure Estils de línia a sota).
newWidth is an integer value that defines the line thickness.
newColor és un valor enter corresponent a un color definit amb la funció RGB.
Per cridar a FormatCellBorder creeu una nova macro i passeu els arguments desitjats, tal com es mostra a continuació:
    Sub MyMacro
        ' Dona accés a les constants d'estil de línia
        Dim cStyle as Object
        Set cStyle = com.sun.star.table.BorderLineStyle
        ' Formata «B5» amb vores blaves sòlides
        FormatCellBorder("B5", cStyle.SOLID, 20, RGB(0, 0, 255))
        ' Formata totes les vores de l'interval «D2:F6» amb vores puntejades vermelles
        FormatCellBorder("D2:F6", cStyle.DOTTED, 20, RGB(255, 0, 0))
    End Sub
  És possible implementar la mateixa funcionalitat en Python:
    from uno import createUnoStruct
    from scriptforge import CreateScriptService
    
    def formatCellBorder(cellAddress, newStyle, newWidth, newColor=0):
        # Defineix el format de línia nou
        line_format = createUnoStruct("com.sun.star.table.BorderLine2")
        line_format.LineStyle = newStyle
        line_format.LineWidth = newWidth
        line_format.Color = newColor
        # Servei de l'ScriptForge per a accedir als intervals de cel·les
        doc = CreateScriptService("Calc")
        cell = doc.XCellRange(cellAddress)
        cell.TopBorder = line_format
        cell.RightBorder = line_format
        cell.LeftBorder = line_format
        cell.BottomBorder = line_format
  El fragment de codi següent implementa una macro anomenada myMacro que crida formatCellBorder:
    from com.sun.star.table import BorderLineStyle as cStyle
    
    def myMacro():
        bas = CreateScriptService("Basic")
        formatCellBorder("B5", cStyle.SOLID, 20, bas.RGB(0, 0, 255))
        formatCellBorder("D2:F6", cStyle.DOTTED, 20, bas.RGB(255, 0, 0))
  El codi Python presentat anteriorment utilitza la biblioteca ScriptForge que està disponible des del LibreOffice 7.2.
Els estils de línia es defineixen com a constants enteres. La taula següent enumera les constants dels estils de línia disponibles a :
| Nom de la constant | Valor enter | Nom de l'estil de línia | 
|---|---|---|
| SOLID | 0 | Sòlid | 
| DOTTED | 1 | Puntejat | 
| DASHED | 2 | Ratllat | 
| FINE_DASHED | 14 | Ratllat fi | 
| DOUBLE_THIN | 15 | Doble fi | 
| DASH_DOT | 16 | Ratlla punt | 
| DASH_DOT_DOT | 17 | Ratlla punt punt | 
Consulteu Referència a la constant BorderLineStyle a la documentació de l'API de LibreOffice per aprendre més sobre les constants de l'estil de línia.
Range objects have a property named TableBorder2 that can be used to format range borders as it is done in the dialog in the Line Arrangement section.
A més de les vores superior, inferior, esquerra i dreta, TableBorder2 també defineix les vores horitzontals i verticals. La macro a continuació aplica només les vores superior i inferior a l'interval «B2:E5».
    Sub TableBorder2Example
        Dim cStyle as Object
        Set cStyle = com.sun.star.table.BorderLineStyle
        ' Defineix el format de línia nou
        Dim lineFormat as New com.sun.star.table.BorderLine2
        lineFormat.LineStyle = cStyle.SOLID
        lineFormat.LineWidth = 15
        lineFormat.Color = RGB(0, 0, 0)
        ' Estructura que emmagatzema la definició del nou «TableBorder2»
        Dim tableFormat as New com.sun.star.table.TableBorder2
        tableFormat.TopLine = lineFormat
        tableFormat.BottomLine = lineFormat
        tableFormat.IsTopLineValid = True
        tableFormat.IsBottomLineValid = True
        ' Aplica la formatació de taula a l'interval «B2:E5»
        Dim oCell as Object
        oCell = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("B2:E5")
        oCell.TableBorder2 = tableFormat
    End Sub
  La macro es pot implementar en Python d'aquesta manera:
    from com.sun.star.table import BorderLineStyle as cStyle
    from scriptforge import CreateScriptService
    
    def tableBorder2Example():
        bas = CreateScriptService("Basic")
        line_format = createUnoStruct("com.sun.star.table.BorderLine2")
        line_format.LineStyle = cStyle.SOLID
        line_format.LineWidth = 18
        line_format.Color = bas.RGB(0, 0, 0)
        table_format = createUnoStruct("com.sun.star.table.TableBorder2")
        table_format.TopLine = line_format
        table_format.BottomLine = line_format
        table_format.IsTopLineValid = True
        table_format.IsBottomLineValid = True
        doc = CreateScriptService("Calc")
        cell = doc.XCellRange("B2:E5")
        cell.TableBorder2 = table_format
  Refer to the TableBorder2 Struct Reference in the LibreOffice API documentation to learn more about its attributes.