zaznaczam użyte komórki, klikam krawędzie, wybieram "okienko" z krzyżykiem w środku i mam.
Nie umiem przepisać tej funkcji do Basic'a. Udało mi się jedynie obrysować cały zakres po zewnętrznych, oto kod:
Kod: Zaznacz cały
Function UsedRange(oSheet As Variant) As Variant
Dim oCursor As Variant
oCursor = oSheet.createCursor()
oCursor.gotoEndOfUsedArea(False)
oCursor.gotoStartOfUsedArea(True)
UsedRange = oCursor
End Function
Sub Usun
Dim Doc As Object
Dim Sheet As Object
Dim FirstRow As Object
Doc = ThisComponent
Sheet = Doc.Sheets (0)
FirstRow = Sheet.getCellRangeByName("A1:Y1")
FirstRow.IsTextWrapped = True
Sheet.Columns.removeByIndex(0,2)
Sheet.Columns.removeByIndex(1,1)
Sheet.Columns.removeByIndex(3,2)
Sheet.Columns.removeByIndex(4,2)
Sheet.Columns.removeByIndex(5,16)
Dim kolumna As Object
kolumna = Sheet.Columns(0)
kolumna.OptimalWidth = true
kolumna = Sheet.Columns(1)
kolumna.OptimalWidth = true
rem Widoczne krawędzie
Dim BasicBorder as New com.sun.star.table.BorderLine
Dim oBorder As Object
dim jTableBorder As New com.sun.star.table.TableBorder
oBorder = UsedRange(Sheet).TableBorder
'MsgBox oBorder.getRows().getCount()
rem Werte für einen einfachen Rand
BasicBorder.Color =0
BasicBorder.InnerLineWidth = 0
BasicBorder.OuterLineWidth = 1
BasicBorder.LineDistance = 0
oBorder.LeftLine = BasicBorder
oBorder.TopLine = BasicBorder
oBorder.RightLine = BasicBorder
oBorder.BottomLine = BasicBorder
UsedRange(Sheet).TableBorder = oBorder
End Sub