LibreOffice 25.8 Hjælp
Ved at bruge programmeringssprogene Basic eller Python er det muligt at skrive makroer, som bruger formater på celleområder i Calc.
Kodestumpen herunder opretter en Sub kaldet FormatCellBorder, der anvender nye kantformater på en givet områdeadresse i det aktuelle Calc-ark.
    Sub FormatCellBorder(cellAddress as String, newStyle as Byte, newWidth as Long, Optional newColor as Long)
        ' Opretter den UNO-struktur, som lagrer det nye linjeformat
        Dim lineFormat as New com.sun.star.table.BorderLine2
        lineFormat.LineStyle = newStyle
        lineFormat.LineWidth = newWidth
        If Not IsMissing(newColor) Then lineFormat.Color = newColor
        'Henter målcellen
        Dim oCell as Object
        Set oCell = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName(cellAddress)
        ' Anvender det nye format på alle kanter
        oCell.TopBorder = lineFormat
        oCell.RightBorder = lineFormat
        oCell.LeftBorder = lineFormat
        oCell.BottomBorder = lineFormat
    End Sub
  Sub'en, der er beskrevet ovenfor bruger fire argumenter:
CelleAddress er en streng, som angiver det område. der skal formateres i formatet "A1".
ny typografi er en heltalsværdi, der svarer til kanttypografien (se Linjetypografier herunder).
newWidth er en heltalsværdi, der definerer linjetykkelsen.
nyFarve er en heltalsværdi, der svarer til farve, der er defineret med RGB-funktionen.
For at kalde FormatCellBorder opretter du en makro og videresender de ønskede argumenter som vist herunder:
    Sub MyMacro
        ' Giver adgang linjetypografi-konstanterne
        Dim cStyle as Object
        Set cStyle = com.sun.star.table.BorderLineStyle
        ' Formaterer "B5" med kraftige blå kanter
        FormatCellBorder("B5", cStyle.SOLID, 20, RGB(0, 0, 255))
        ' Formaterer alle kanter i området "D2:F6" med røde stiplede kanter
        FormatCellBorder("D2:F6", cStyle.DOTTED, 20, RGB(255, 0, 0))
    End Sub
  Det er muligt at implementere den samme funktionalitet i Python:
    from uno import createUnoStruct
    from scriptforge import CreateScriptService
    
    def formatCellBorder(cellAddress, newStyle, newWidth, newColor=0):
        # Definerer det nyt linjeformat
        line_format = createUnoStruct("com.sun.star.table.BorderLine2")
        line_format.LineStyle = newStyle
        line_format.LineWidth = newWidth
        line_format.Color = newColor
        # Scriptforge-tjeneste til give adgang til celleområder
        doc = CreateScriptService("Calc")
        cell = doc.XCellRange(cellAddress)
        cell.TopBorder = line_format
        cell.RightBorder = line_format
        cell.LeftBorder = line_format
        cell.BottomBorder = line_format
  Kodestumpen herunder implementerer en makro ved navn myMacro, der kalder 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))
  Den Python-kode, der blev præsenteret herover bruger ScriptForge-biblioteket, der har været tilgængeligt siden LibreOffice 7.2.
Linjetypografier er defineret som heltalskonstanter. Tabellen herunder oplister konstanter de linjetypografier, der er tilgængelige i :
| Konstantnavn | Heltalsværdi | Linjetypografi-navn | 
|---|---|---|
| SOLID | 0 | Kraftig | 
| DOTTED | 1 | Prikket | 
| DASHED | 2 | Stiplet | 
| FINE_DASHED | 14 | Fint stiplet | 
| DOUBLE_THIN | 15 | Dobbelt tynd | 
| DASH_DOT | 16 | Bindestreg-prik | 
| DASH_DOT_DOT | 17 | Bindestreg-prik-prik | 
Se Kantlinje-konstant Oversigt i LibreOffices API-dokumentation for at få mere at vide om Linjetypografi-konstanter.
Områdeobjekter har en egenskab kaldet TableBorder2, der kan bruges til at formatere områdets kantlinjer som det gøres i dialogen i sektionen LinjePlacering.
Udover over-, under-, venstre og højre kant definerer TableBorder2 også lodrette og vandrette kantlinjer. Makroen herunder anvender kun over- og kanter på området "B2:E5".
    Sub TableBorder2Example
        Dim cStyle as Object
        Set cStyle = com.sun.star.table.BorderLineStyle
        ' Definerer det nye linjeformat
        Dim lineFormat as New com.sun.star.table.BorderLine2
        lineFormat.LineStyle = cStyle.SOLID
        lineFormat.LineWidth = 15
        lineFormat.Color = RGB(0, 0, 0)
        ' Struktur, der lagrer den nye TableBorder2 definition
        Dim tableFormat as New com.sun.star.table.TableBorder2
        tableFormat.TopLine = lineFormat
        tableFormat.BottomLine = lineFormat
        tableFormat.IsTopLineValid = True
        tableFormat.IsBottomLineValid = True
        ' Anvender tabelformatet på området "B2:E5"
        Dim oCell as Object
        oCell = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("B2:E5")
        oCell.TableBorder2 = tableFormat
    End Sub
  Makroen kan implementeres i Python som følger:
    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
  Se TableBorder2 strukturoversigt i LibreOffices API-dokumentation for at få mere at vide om dens attrubutter.