LibreOffice 24.8 Bantuan
Degan menggunakan bahasa pemograman Basic atau Python dimungkinkan untuk menulis makro yang menerapkan format rentang sel di Calc.
Cuplikan kode di bawah ini membuat Sub yang disebut FormatCellBorder yang menerapkan format batas baru ke alamat rentang tertentu di lembar Calc saat ini.
    Sub FormatCellBorder(cellAddress as String, newStyle as Byte, newWidth as Long, Optional newColor as Long)
        ' Membuat struct UNO yang akan menyimpan format baris baru
        Dim lineFormat as New com.sun.star.table.BorderLine2
        lineFormat.LineStyle = newStyle
        lineFormat.LineWidth = newWidth
        If Not IsMissing(newColor) Then lineFormat.Color = newColor
        ' Mendapatkan target sel
        Dim oCell as Object
        Set oCell = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName(cellAddress)
        ' Menerapkan format baru ke semua batas
        oCell.TopBorder = lineFormat
        oCell.RightBorder = lineFormat
        oCell.LeftBorder = lineFormat
        oCell.BottomBorder = lineFormat
    End Sub
  Sub yang dijelaskan di atas mengambil empat argumen:
cellAddress adalah string yang menunjukkan rentang yang akan diformat dalam format "A1".
newStyle adalah nilai integer yang sesuai dengan gaya batas garis (lihatGaya Garis di bawah).
newWidth adalah sebuah nilai integer yang mendfinisikan ketebalan garis.
newColor adalah nilai integer yang sesuai dengan warna yang didefinisikan menggunakan RGB fungsi.
Untuk memanggil FormatCellBorder buat makro baru dan berikan argumen yang diinginkan, seperti yang ditunjukkan di bawah ini:
    Sub MyMacro
        ' Memberikan akses ke konstanta gaya garis
        Dim cStyle as Object
        Set cStyle = com.sun.star.table.BorderLineStyle
        ' Format "B5" dengan batas biru solid
        FormatCellBorder("B5", cStyle.SOLID, 20, RGB(0, 0, 255))
        ' Format semua batas dalam rentang "D2:F6" dengan batas merah titik-titik
        FormatCellBorder("D2:F6", cStyle.DOTTED, 20, RGB(255, 0, 0))
    End Sub
  Dimungkinkan untuk mengimplementasikan fungsi yang sama dengan Python:
    from uno import createUnoStruct
    from scriptforge import CreateScriptService
    
    def formatCellBorder(cellAddress, newStyle, newWidth, newColor=0):
        # Mendefinisikan format baris baru
        line_format = createUnoStruct("com.sun.star.table.BorderLine2")
        line_format.LineStyle = newStyle
        line_format.LineWidth = newWidth
        line_format.Color = newColor
        # Layanan scriptforge untuk mengakses rentang sel
        doc = CreateScriptService("Calc")
        cell = doc.XCellRange(cellAddress)
        cell.TopBorder = line_format
        cell.RightBorder = line_format
        cell.LeftBorder = line_format
        cell.BottomBorder = line_format
  Cuplikan kode di bawah ini mengimplementasikan makro bernama myMacro yang memanggil 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))
  Kode Python yang disajikan di atas menggunakan pustaka ScriptForge yang tersedia sejak LibreOffice 7.2.
Gaya garis didefinisikan sebagai konstanta bilangan integer. Tabel di bawah mencantumkan konstanta untuk gaya garis yang tersedia di :
| Nama konstanta | Nilai integer | Nama gaya garis | 
|---|---|---|
| SOLID | 0 | Padat | 
| DOTTED | 1 | Titik-titik | 
| DASHED | 2 | Putus-putus | 
| FINE_DASHED | 14 | Putus-putus halus | 
| DOUBLE_THIN | 15 | Garis ganda | 
| DASH_DOT | 16 | Putus-putus titik | 
| DASH_DOT_DOT | 17 | Garis titik-titik | 
Mengacu pada Referensi Konstanta BorderLineStyle di dokumentasi LibreOffice API untuk mempelajari lebih lanjut tentang konstanta gaya garis.
Objek rentang memiliki properti bernama TableBorder2 yang dapat digunakan untuk memformat batas rentang seperti yang dilakukan dalam dialog dalam bagian Penataan Garis.
Selain batas atas, bawah, kiri dan kanan, TableBorder2 juga mendefinisikan batas vertikal dan horizontal. Makro di bawah ini hanya menerapkan batas atas dan bawah ke rentang "B2:E5".
    Sub TableBorder2Example
        Dim cStyle as Object
        Set cStyle = com.sun.star.table.BorderLineStyle
        ' Mendefinisikan format baris baru
        Dim lineFormat as New com.sun.star.table.BorderLine2
        lineFormat.LineStyle = cStyle.SOLID
        lineFormat.LineWidth = 15
        lineFormat.Color = RGB(0, 0, 0)
        ' Struct yang menyimpan definisi TableBorder2 baru
        Dim tableFormat as New com.sun.star.table.TableBorder2
        tableFormat.TopLine = lineFormat
        tableFormat.BottomLine = lineFormat
        tableFormat.IsTopLineValid = True
        tableFormat.IsBottomLineValid = True
        ' Menerapkan format tabel ke dalam rentang "B2:E5"
        Dim oCell as Object
        oCell = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("B2:E5")
        oCell.TableBorder2 = tableFormat
    End Sub
  Makro dapat diimplementasikan dalam Python sebagai berikut:
    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
  Mengacu pada Referensi Struct TableBorder2 di dokumentasi LibreOffice API untuk mempelajari lebih lanjut tentang atributnya.