No nie, to nie jest ta właściwość."HoriJustify" to właściwość określająca poziome wyrównanie tekstu w komórce. Za obramowania odpowiada właściwość xBorder, w której "x" określa krawędź obramowania. Przedstawiam ci propozycję makra.
Założyłem, że w twojej tabeli pierwsza kolumna i pierwszy wiersz określają rozmiar tabeli, poprzez znalezienie położenie pierwszej pustej komórki. Mój przykład zakłada, że tabela zaczyna się w komórce o współrzędnych podanych zmiennymi "tsk" i "tsw".
Dwie pętle Do — Loop wyznaczają liczbę wierszy i kolumn, a następnie obszarowi wynikającemu z tych rozmiarów przypisywane są krawędzie.
BorderLine jest zdefiniowaną strukturą, a nie funkcją.
Kod: Zaznacz cały
Sub Ramki
Dim aBorder as New com.sun.star.table.BorderLine2
Dim oCells as Object, oArk as Object, oDok as Object, oCell as Object ' Obszar w tabeli.
tsw=12 'startowy nr wiersza tabeli (liczony od 0)
tsk=2 'Startowy nr kolumny tabeli (liczony od 0)
With aBorder
.Color=0 '0=czarny
.LineWidth=50 'grubośc linii w setnych milimetra
.LineStyle=0
End With
oDok=ThisComponent
oArk=oDok.Sheets(0)
'Policzenie ile jest wierszy i kolumn
liczbawierszy=0
Do
oCell=oArk.getCellByPosition(tsk, tsw+liczbawierszy)
If oCell.string="" then Exit Do
liczbawierszy=liczbawierszy+1
Loop While oCell.string <>""
LiczbaKolumn=0
Do
oCell=oArk.getCellByPosition(tsk+LiczbaKolumn, tsw)
If oCell.string="" then Exit Do
LiczbaKolumn=LiczbaKolumn+1
Loop While oCell.string<>""
'Zdefiniowanie zakresu i przypisanie linii krawędzi
oCells=oArk.getCellRangeByPosition(tsk,tsw,tsk+liczbakolumn-1,tsw+liczbawierszy-1)
with oCells 'Obramowanie każdej komórki w obszarze
.BottomBorder=aBorder
.TopBorder=aBorder
.LeftBorder=aBorder
.RightBorder=aBorder
End With
End Sub