LibreOffice Basic. Редактирование защищенного листа Calc только из макроса.

Автор ost, 11 марта 2021, 08:41

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

ost

Доброго.
Есть ли возможность разрешить редактирование защищенных ячеек на защищенном листе Calc из макроса? При этом чтобы попытка изменения защищенных ячеек на таком листе из интерфейса пользователя блокировалась.
Спасибо.


eeigor

В Excel можно. Здесь метод protect идет без параметров. Нельзя.
Но что мешает добавить в коде 2 строки:
до начала вашего редактирования снять защиту, а после внесения изменений, установить обратно? С паролем или без, неважно... Это сложно?
В примере ниже защита стоит без пароля, и пользователь может даже снять защиту и забыть поставить обратно (переменная bWasProtected).

    oSheet = ThisComponent.CurrentController.ActiveSheet
   With oSheet
       bWasProtected = .isProtected()
       If .isProtected() Then .unprotect("")  'no password (!)
            <...>  'ваш код
       If bWasProtected Then .protect("")
   End With
Ubuntu 18.04 LTS • LibreOffice 7.5.1.2 Community