Доброго.
Собственно, сабж. Речь о снятии галки "Защищено", во вкладке "Защита ячейки" окна "Формат ячеек".
Спасибо.
Сделал так:
oAllCells = oSheet.getCellRangeByPosition(0,0,1023,1048575)
CellsPrtct = oAllCells.CellProtection
CellsPrtct.IsLocked = false
oAllCells.CellProtection = CellsPrtct
Работает, но смущает "oAllCells = oSheet.getCellRangeByPosition(0,0,1023,1048575)". Количество строк на листе может быть разным же.
Не надо вычислять то, что уже известно и так.
.ActiveSheet.RangeAddress.EndRow
Получите ссылку на лист и работайте с ним.
UPD:
Не уверен, но есть UsedRange, а всего листа как бы и нет. То есть, если установить какой-то параметр для всего листа, то не буде ли добавлено в память несколько миллионов пустых ячеек. Можно сравнить с размером файла до и после
Пока сделал так:
oBook = ThisComponent
sSheet = oBook.getCurrentController.getActiveSheet().Name
oSheet = oBook.Sheets.getByName(sSheet)
oAllCells = oSheet.getCellRangeByPosition(0, 0, oSheet.RangeAddress.EndColumn, oSheet.RangeAddress.EndRow)
CellsPrtct = oAllCells.CellProtection
CellsPrtct.IsLocked = false
oAllCells.CellProtection = CellsPrtct
=). Работает.
Объем, вроде как, вырос на 20 КБ.
Но зачем это делать, не понятно.
aCellProtection = CreateUnoStruct("com.sun.star.util.CellProtection")
aCellProtection.IsLocked = False
ThisComponent.CurrentController.ActiveSheet.CellProtection = aCellProtection