Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

19 Октябрь 2019, 10:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Защита листа Calc  (Прочитано 246 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Kadet
Форумчанин
***
Offline Offline

Сообщений: 135


« Стартовое сообщение: 24 Сентябрь 2019, 22:57 »

Задача: заблокировать лист calc от всяких изменений, причём сделать это нужно макросом.
Нашёл два способа: EditDoc (сделать документ только для чтения) и Protect (установить защиту листа от изменений).
Так как документ calc является встроенным объектом, то EditDoc не работает. Документ продолжает редактироваться.
В общем, остановился на втором способе:
Код:
Sub BlockDocOn()
Dim document   as object
Dim dispatcher as object

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

Dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Protect"
args1(0).Value = True

dispatcher.executeDispatch(document, ".uno:Protect", "", 0, args1())

End Sub

Всё работает как задумано, но есть одно неудобство. При включении защиты выскакивает диалоговое окно с запросом пароля защиты. Пароль не нужен, поэтому это окно вообще лишнее. Однако этот запрос встроен в LO и никак я не найду способа обойти этот запрос.
Нужно либо вообще отключить этот запрос, чего никак не могу найти как сделать. Либо симулировать нажатие кнопки мыши на кнопке "ОК" этого диалогового окна, чего тоже никак не могу изобразить. Это диалоговое окно даже поймать не получается, а пока оно открыто все макросы останавливаются.

Может кто подбросит идею как выключить этот запрос?
« Последнее редактирование: 24 Сентябрь 2019, 22:59 от Kadet » Записан
mikekaganski
Мастер
*****
Online Online

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 1 505


« Ответ #1: 24 Сентябрь 2019, 23:01 »

https://ask.libreoffice.org/en/question/80651/protect-sheet-from-macro-without-popup/
Записан

С уважением,
Михаил Каганский
Kadet
Форумчанин
***
Offline Offline

Сообщений: 135


« Ответ #2: 24 Сентябрь 2019, 23:22 »

mikekaganski огромное спасибо.
Теперь работает как надо.
Оказалось до глупости просто.
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!