макрос - защита документа с паролем

Автор bitum, 1 мая 2014, 01:09

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

bitum

Доброго времени
Можно ли написать макрос и назначить на кнопку, который защищает документ с использованием пароля ?
у меня не получается ,       без пароля работает
OOO 4.0.1
Win 8

Yakov

Почему же?
Макрос работает как надо.
Только он защищает не документ, а лист.

bitum

Спасибо за ответ
Да, простите "лист"
Но у меня во время выполнения макроса выскакивает форма где вручную надо вводить пароль , а я записывал макрос с вводом пароля "1"
т. е. я хотел чтоб все было автоматически без выскакивания формы

rami

#3
Нажмите на кнопку. Повторное нажатие снимает защиту.

Smaigas

#4
Я чегото не понял, это фича такая или чтото с моей либрой? Хотю макрос подглядеть, а он , зараза, прячется (на миг появляется весь код, и сразу исчезает). В итоге я вижу только это:
Sub Main
oSheet=ThisComponent.CurrentController.ActiveSheet
If oSheet.isProtected() Then  oSheet.unprotect(1) Else  oSheet.protect(1)
End Sub

ПыСы Макрос работает


Smaigas

Гы,
меня смутило мелькание, поэтому, на то что всплыло даже не смотрел. Оказывается, мелькали мои макросы, которые в My macros>Standard>Module1

apt31

Так просто. Вчера мучился где бы найти эти аргументы. Вообще я бы учредил медаль разработчикам OOо за самые непонятный ресурс (http://www.openoffice.org/api/basic/man/) по изучению  встроенного языка программирования.
Вот еще проблема. Создал кнопку на листе CALC. Как связать макрос с кнопкой . На панели управления все нормально работает а на листе - мертвая, хотя все вроде настроил.

rami

Цитата: apt31 от  2 июля 2014, 10:54Как связать макрос с кнопкой . На панели управления все нормально работает а на листе - мертвая, хотя все вроде настроил.
Назначьте кнопке макрос. В панели инструментов "Элементы управления" нажмите значок "Элемент управления", в открывшимся окне нажмите "События", в строке "Выполнить действие" нажмите кнопку "...", в открывшемся окне нажмите "Макрос..." и выберите  нужный макрос.

Tigrigrrr

Добрый день!  У меня такая проблема возникла.
Делаю кнопку на листе, при нажатии на которую выполняется макрос :

Doc = ThisComponent
oSheets = Doc.Sheets
List2 = oSheets.getByName("Лист2")
List2.Protect("")
Данный макрос просто защищает лист.
Если открыть  лист(незащищенный) нажать на кнопку. То все на листе защищено кроме самой кнопки , ее можно переносить, редактировать.
Как можно сделать так чтобы защищалась еще и сама кнопка от редактирования?

Tigrigrrr

Если затем сохранить документ, закрыть и заново открыть то кнопку уже нельзя отредактировать.

rami

Цитата: Tigrigrrr от 21 августа 2014, 11:41Если открыть  лист(незащищенный) нажать на кнопку. То все на листе защищено кроме самой кнопки , ее можно переносить, редактировать.
Можно запретить изменение размеров или позиции кнопки.
Цитата: Tigrigrrr от 21 августа 2014, 11:48Если затем сохранить документ, закрыть и заново открыть то кнопку уже нельзя отредактировать.
Можно установить режим "только для чтения" и пароль на документ, ничего нельзя будет редактировать. Кстати режим "только для чтения" у меня не отменяется , не активная кнопка "снять защиту"
Цитата: Tigrigrrr от 21 августа 2014, 11:41Как можно сделать так чтобы защищалась еще и сама кнопка от редактирования?
Напрямую нельзя, но можно костылями по бубну ;D Можно сделать так, что при любой вашей попытке включить режим редактирования шустрый макрос забежит вперёд и отключит. Но какой смысл всё это делать и для чего?