Ajuda do LibreOffice 25.2
Ao usar as linguagens Basic ou Python é possível escrever macros que aplicam formatos a intervalos de células no Calc.
O trecho de código abaixo cria uma Sub chamada FormatCellBorder que aplica novos formatos de borda para um dado endereço de células na planilha Calc atual.
    Sub FormatCellBorder(cellAddress as String, newStyle as Byte, newWidth as Long, Optional newColor as Long)
        ' Cria um struct UNO que armazenará o novo formato de linha
        Dim lineFormat as New com.sun.star.table.BorderLine2
        lineFormat.LineStyle = newStyle
        lineFormat.LineWidth = newWidth
        If Not IsMissing(newColor) Then lineFormat.Color = newColor
        ' Obtém a célula de destino
        Dim oCell as Object
        Set oCell = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName(cellAddress)
        ' Aplica o novo formato a todas as bordas
        oCell.TopBorder = lineFormat
        oCell.RightBorder = lineFormat
        oCell.LeftBorder = lineFormat
        oCell.BottomBorder = lineFormat
    End Sub
  A Sub descrita acima tem quatro argumentos de entrada:
cellAddress é uma string que denota o intervalo a ser formatado usando a notação "A1".
newStyle é um valor inteiro que corresponde ao estilo de linha da borda (veja Estilos de Linha abaixo).
newWidth é um valor inteiro que define a espessura da linha.
newColor é um valor inteiro que corresponde à cor definida usando a função RGB.
Para chamar FormatCellBorder crie uma nova macro e passe os argumentos desejados, conforme mostra o exemplo abaixo:
    Sub MyMacro
        ' Fornece acesso às constantes de estilo de linha
        Dim cStyle as Object
        Set cStyle = com.sun.star.table.BorderLineStyle
        ' Formata "B5" com uma borda sólida azul
        FormatCellBorder("B5", cStyle.SOLID, 20, RGB(0, 0, 255))
        ' Formata todas as bordas no intervalo "D2:F6" com borda vermelha pontilhada
        FormatCellBorder("D2:F6", cStyle.DOTTED, 20, RGB(255, 0, 0))
    End Sub
  É possível implementar a mesma funcionalidade em Python:
    from uno import createUnoStruct
    from scriptforge import CreateScriptService
    
    def formatCellBorder(cellAddress, newStyle, newWidth, newColor=0):
        # Define o novo formato de linha
        line_format = createUnoStruct("com.sun.star.table.BorderLine2")
        line_format.LineStyle = newStyle
        line_format.LineWidth = newWidth
        line_format.Color = newColor
        # Serviço ScriptForge para acessar intervalos de célula
        doc = CreateScriptService("Calc")
        cell = doc.XCellRange(cellAddress)
        cell.TopBorder = line_format
        cell.RightBorder = line_format
        cell.LeftBorder = line_format
        cell.BottomBorder = line_format
  O trecho de código abaixo implementa a macro chamada myMacro que chama 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))
  O código Python apresentado acima usa a biblioteca ScriptForge que está disponível a partir do LibreOffice 7.2.
Estilos de linhas são definidos como valores inteiros constantes. A tabela abaixo lista as constantes para os estilos de linha disponíveis no menu :
| Nome da constante | Valor inteiro | Nome do estilo de linha | 
|---|---|---|
| SOLID | 0 | Sólido | 
| DOTTED | 1 | Pontilhado | 
| DASHED | 2 | Tracejado | 
| FINE_DASHED | 14 | Tracejado fino | 
| DOUBLE_THIN | 15 | Duplo, fino | 
| DASH_DOT | 16 | Traço ponto | 
| DASH_DOT_DOT | 17 | Traço ponto ponto | 
Consulte a página BorderLineStyle Constant Reference na documentação da API do LibreOffice para saber mais sobre as constantes de estilo de linha.
Objetos de intervalos possuem uma propriedade chamada TableBorder2 que pode ser usada para formatar bordas de células da mesma forma como é feito usando a caixa de diálogo na seção Disposição de linhas.
Além das bordas superior, inferior, esquerda e direita, TableBorder2 também define bordas horizontais e verticais. A macro abaixo aplica apenas bordas superior e inferior ao intervalo "B2:E5".
    Sub TableBorder2Example
        Dim cStyle as Object
        Set cStyle = com.sun.star.table.BorderLineStyle
        ' Define o novo formato de linha
        Dim lineFormat as New com.sun.star.table.BorderLine2
        lineFormat.LineStyle = cStyle.SOLID
        lineFormat.LineWidth = 15
        lineFormat.Color = RGB(0, 0, 0)
        ' Struct que armazena a nova definição de TableBorder2
        Dim tableFormat as New com.sun.star.table.TableBorder2
        tableFormat.TopLine = lineFormat
        tableFormat.BottomLine = lineFormat
        tableFormat.IsTopLineValid = True
        tableFormat.IsBottomLineValid = True
        ' Aplica o formato de tabela ao intervalo "B2:E5"
        Dim oCell as Object
        oCell = ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("B2:E5")
        oCell.TableBorder2 = tableFormat
    End Sub
  A macro pode ser implementada em Python conforme mostrado a seguir:
    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
  Consulte a página TableBorder2 Struct Reference na documentação da API do LibreOffice para saber mais sobre seus atributos.