LibreOffice 25.2 Βοήθεια
Με τη χρήση γλωσσών προγραμματισμού Basic ή Python είναι δυνατό να γραφτούν μακροεντολές που εφαρμόζουν μορφές σε περιοχές κελιών στο Calc.
Το παρακάτω απόσπασμα κώδικα δημιουργεί ένα Sub που ονομάζεται FormatCellBorder που εφαρμόζει νέες μορφές περιγράμματος σε μια δεδομένη διεύθυνση εύρους στο τρέχον φύλλο Calc.
    Sub FormatCellBorder(cellAddress as String, newStyle as Byte, newWidth as Long, Optional newColor as Long)
        ' Δημιουργεί τη δομή UNO που θα αποθηκεύσει τη νέα μορφή γραμμής
        Dim lineFormat as New com.sun.star.table.BorderLine2
        lineFormat.LineStyle = newStyle
        lineFormat.LineWidth = newWidth
        If Not IsMissing(newColor) Then lineFormat.Color = newColor
        ' Παίρνει το κελί-στόχο
        Dim oCell as Object
        Set oCell = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName(cellAddress)
        ' Εφαρμόζει τη νέα μορφή σε όλα τα περιγράμματα
        oCell.TopBorder = lineFormat
        oCell.RightBorder = lineFormat
        oCell.LeftBorder = lineFormat
        oCell.BottomBorder = lineFormat
    End Sub
  Το Sub που περιγράφεται παραπάνω περιλαμβάνει τέσσερα ορίσματα:
Η CellAddress είναι μια συμβολοσειρά που υποδηλώνει το εύρος που θα μορφοποιηθεί στη μορφή "A1".
Το newStyle είναι μια ακέραια τιμή που αντιστοιχεί στην τεχνοτροπία γραμμής περιγράμματος (δείτε Τεχνοτροπίες γραμμής παρακάτω).
Το newWidth είναι μια ακέραια τιμή που καθορίζει το πάχος της γραμμής.
Το newColor (νέο_χρώμα) είναι μια ακέραια τιμή που αντιστοιχεί σε ένα χρώμα που ορίζεται χρησιμοποιώντας τη συνάρτηση RGB.
Για να καλέσετε το FormatCellBorder δημιουργήστε μια νέα μακροεντολή και περάστε τα επιθυμητά ορίσματα, όπως φαίνεται παρακάτω:
    Sub MyMacro
        ' Παρέχει πρόσβαση στις σταθερές τεχνοτροπίες γραμμής
        Dim cStyle as Object
        Set cStyle = com.sun.star.table.BorderLineStyle
        ' Μορφοποιεί "B5" με συμπαγή γαλάζια περιγράμματα
        FormatCellBorder("B5", cStyle.SOLID, 20, RGB(0, 0, 255))
        ' Μορφοποιεί όλα τα περιγράμματα στην περιοχή "D2:F6" με κόκκινα περιγράμματα με κουκκίδες
        FormatCellBorder("D2:F6", cStyle.DOTTED, 20, RGB(255, 0, 0))
    End Sub
  Είναι δυνατή η υλοποίηση της ίδιας λειτουργικότητας στην Python:
    from uno import createUnoStruct
    from scriptforge import CreateScriptService
    
    def formatCellBorder(cellAddress, newStyle, newWidth, newColor=0):
        # Καθορίζει τη νέα μορφή γραμμής
        line_format = createUnoStruct("com.sun.star.table.BorderLine2")
        line_format.LineStyle = newStyle
        line_format.LineWidth = newWidth
        line_format.Color = newColor
        # Υπηρεσία Scriptforge για πρόσβαση σε περιοχές κελιών
        doc = CreateScriptService("Calc")
        cell = doc.XCellRange(cellAddress)
        cell.TopBorder = line_format
        cell.RightBorder = line_format
        cell.LeftBorder = line_format
        cell.BottomBorder = line_format
  Το παρακάτω απόσπασμα κώδικα υλοποιεί μια μακροεντολή με το όνομα myMacro που καλεί 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))
  Ο κώδικας Python που παρουσιάζεται παραπάνω χρησιμοποιεί τη βιβλιοθήκη ScriptForge που είναι διαθέσιμη από το LibreOffice 7.2.
Οι τεχνοτροπίες γραμμής ορίζονται ως ακέραιες σταθερές. Ο παρακάτω πίνακας παραθέτει τις σταθερές για τις τεχνοτροπίες γραμμής που είναι διαθέσιμα στο :
| Όνομα σταθεράς | Ακέραιη τιμή | Όνομα τεχνοτροπίας γραμμής | 
|---|---|---|
| SOLID | 0 | Συμπαγής | 
| DOTTED | 1 | Με κουκκίδες | 
| DASHED | 2 | Με παύλες | 
| FINE_DASHED | 14 | Με λεπτές παύλες | 
| DOUBLE_THIN | 15 | Διπλή λεπτή | 
| DASH_DOT | 16 | Παύλα κουκκίδα | 
| DASH_DOT_DOT | 17 | Παύλα κουκκίδα κουκκίδα | 
Ανατρέξτε στο Αναφορά σταθεράς BorderLineStyle στην τεκμηρίωση του API του LibreOffice για να μάθετε περισσότερα σχετικά με τις σταθερές τεχνοτροπίας γραμμής.
Τα αντικείμενα περιοχής έχουν μια ιδιότητα με το όνομα TableBorder2 που μπορεί να χρησιμοποιηθεί για τη μορφοποίηση περιγραμμάτων περιοχής όπως γίνεται στο παράθυρο διαλόγου στην ενότητα Διάταξη γραμμής.
Εκτός από τα πάνω, κάτω, αριστερά και δεξιά περιγράμματα, το TableBorder2 ορίζει επίσης κάθετα και οριζόντια περιγράμματα. Η παρακάτω μακροεντολή εφαρμόζει μόνο τα άνω και κάτω περιγράμματα στην περιοχή "B2:E5".
    Sub TableBorder2Example
        Dim cStyle as Object
        Set cStyle = com.sun.star.table.BorderLineStyle
        ' Καθορίζει τη νέα μορφή γραμμής
        Dim lineFormat as New com.sun.star.table.BorderLine2
        lineFormat.LineStyle = cStyle.SOLID
        lineFormat.LineWidth = 15
        lineFormat.Color = RGB(0, 0, 0)
        ' Δομή που αποθηκεύει τον νέο ορισμό TableBorder2
        Dim tableFormat as New com.sun.star.table.TableBorder2
        tableFormat.TopLine = lineFormat
        tableFormat.BottomLine = lineFormat
        tableFormat.IsTopLineValid = True
        tableFormat.IsBottomLineValid = True
        ' Εφαρμόζει τη μορφή πίνακα στην περιοχή "B2:E5"
        Dim oCell as Object
        oCell = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("B2:E5")
        oCell.TableBorder2 = tableFormat
    End Sub
  Η μακροεντολή μπορεί να εφαρμοστεί στην Python ως εξής:
    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
  Ανατρέξτε στην Αναφορά δομής TableBorder2 στην τεκμηρίωση API του LibreOffice για να μάθετε περισσότερα για τα χαρακτηριστικά του.