Определить обрамление, его эффект и толщину (макрос)

Автор IceBeerg, 27 ноября 2013, 17:41

0 Пользователи и 1 гость просматривают эту тему.

IceBeerg

По сабжу, собственно, как?
Слева, справа, сверху, снизу...

Собственно все это для чего начиналось: в текущей версии 4.1.4.2 и более ранних версии 4.1, а может и до, при открытии таблицы созданной в 1С с обрамлением ячеек вида "-----", оно (обрамление) на печать не выводилось. Йоксель все видит нормально. В Формат ячеек \ Обрамление \ Линия - Эффекты эффект был не определен (белое поле).
Пришлось в меру своих скудных познаний все же собраться с силами и написать макрос.
Может кому пригодиться.
sub BorderLinesStyle14To0InCurrentSheet
View = ThisComponent.getCurrentController()
Sheet = View.getActiveSheet()
Cursor = Sheet.createCursor()
Cursor.gotoStartOfUsedArea(false)
Cursor.gotoEndOfUsedArea(true)
RangeAddress = Cursor.getRangeAddress()
for col = 0 to RangeAddress.EndColumn
for row = 0 to RangeAddress.EndRow
Cell = Sheet.getCellByPosition(col, row)
Border = Cell.TopBorder
if Border.LineStyle = 14 then
Border.LineStyle = 0
Border.OuterLineWidth = 2
Cell.TopBorder = Border
end if
Border = Cell.RightBorder
if Border.LineStyle = 14 then
Border.LineStyle = 0
Border.OuterLineWidth = 2
Cell.RightBorder = Border
end if
Border = Cell.BottomBorder
if Border.LineStyle = 14 then
Border.LineStyle = 0
Border.OuterLineWidth = 2
Cell.BottomBorder = Border
end if
Border = Cell.LeftBorder
if Border.LineStyle = 14 then
Border.LineStyle = 0
Border.OuterLineWidth = 2
Cell.LeftBorder = Border
end if
next row
next col
end sub