Calc Tabelle per Makro schützen

Hallo, ich versuche in einem Macro per Makrorecorder ein Tabellenblatt zu entschützen und nach Bearbeitung durch das Makro auch wieder zu schützen. Der Rekorder läuft auch, das Makro funktioniert auch im Prinzip, nur fragt er mich jedesmal nach dem Passwort, was ich dann noch händisch eingeben muss. Wo kann ich das zugehörige Passwort in der Funktion “Protect” hinterlegen, damit das Makro selbständig durchläuft? siehe Beispiel

rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Protect"
args5(0).Value = false
**args5(0).Password = "Boule"**  <--- so funktioniert es leider nicht!!

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

Hallo,

möglicherweise ist die Antwort hier der schnellere und einfachere Weg:

Kurz zusammengefasst:

ThisComponent.CurrentController.ActiveSheet.Protect "password"
ThisComponent.CurrentController.ActiveSheet.Unprotect "password"

oder:

ThisComponent.Sheets.GetByName("Sheet1").Protect "password"

Damit kannst Du dir das Dispatcher Dingens ersparen.

Das habe ich kurz mal getestet und funktioniert:

Sub ProtectCurrentSheet()

  dim oSheet as object
      
  oSheet = ThisComponent.CurrentController.ActiveSheet
  oSheet.Protect "BlaBlubb"
    
End Sub

Getestet mit LibreOffice

Version: 6.4.7.2,Build ID: 639b8ac485750d5696d7590a72ef1b496725cfb5
CPU threads: 8; OS: Linux 5.3; UI render: default; VCL: kf5; 
Locale: en-US (en_US.UTF-8); UI-Language: en-US,Calc: threaded

Ich hoffe das hilft Dir weiter.

Hallo,
Vielen Dank für die Antwort. Ich hatte diese Version schon mal ohne Erfolg getestet, aber nun hats geklappt.

Nach dem Motto "Kaum macht mans richtig, schon funktionierts

Bitte poste auf ask.libreoffice.org nur dann eine Antwort, wenn Du eine Frage (in diesem Falle Deine eigene) beantwortest. Ansonsten benutze bitte die kommentieren Funktion unterhalb der jeweiligen Antwort/des Kommentars auf die/den Du reagieren willst. Um weitere Information zu den Details Deiner Frage zu geben, bitte die Frage mit Bearbeiten bearbeiten. Vielen Dank …

Wenn es Dir geholfen hat, wäre es nett, das durch Anklicken des kleinen Häkchens (:heavy_check_mark:) direkt neben der Antwort (wird grün dabei) kenntlich zu machen. Vielen Dank …