Hallo Norbert,
hmm, wird ne schwierige Geburt ....
Das Dokument ist aber immer noch nicht scheibgeschützt,
Sicher, das ist ein erwartetes Verhalten

. Jetzt ist nur der Entwurfsmodus aus, d.h. die Steuerelemente funktionieren direkt.
OK, Array leer gemacht, Makro läuft durch, allerdings wird nicht schreibgeschützt geöffnet. Also wieder nicht wie gewünscht. Scheint mir auch logisch zu sein, so wie ich deine Buchhinweise verstanden habe. Mit dem Arg(0) wird im Array ein Parameter = "ReadOnly" definiert und auf "True" gesetzt. Also muss das zu öffnende Dokument über die Methode LoadComponentFromURL als letzte Option durch den Array auch den gewünschten Parameter zugewiesen bekommen, oder?
Nein. Nicht das Array leermachen! Der Weg ist wie folgt: Du definierst das Array mit der gewünschten Dimension - hast du gemacht.
Jetzt weist due den Array-Elementen Inhalte zu - hast du gemacht.
Der Methode "LoadComponentFromURL()" wird jetzt das Array gesamt übergeben, also in der Art "arg()". Wenn du da jetzt reinschreibst "Arg(0)", so würdest du nur den Inhalt des ersten Elementes (Index 0) übergeben - und das kann der Basic-Interpreter hier nicht auflösen. Wäre auch falsch, die Methode löst das selbst auf.
Im übrigen hab ich mir den Ursprungscode noch mal angesehen. Da ist noch ein Fehler drin. Richtig muss es heissen:
Code: Alles auswählen
Sub DateiLadenReadOnly_Entwurf
Dim vDoc 'die geladene Komponente
Dim Arg(0) as new com.sun.star.beans.PropertyValue
Dim sURL as string 'URL der zu ladenden Datei
Arg(0).Name = "ReadOnly"
Arg(0).Value = True
sURL = ConvertToURL("/pfad/zur/datei/test.odt")
vDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Arg())
End Sub
"True" oder "False" sind Schölüsselwörter und bezeichnen einen bestimmten Zustand. Die darfst du natürlich nicht in Anfürhungszeichen setzen . sonst werden sie als Strings interpretiert und damit kann OOo nix anfangen.
Ich hab den Code mal getestet - funktioniert einwandfrei
Viele Grüße
Thomas
<edit> PS: Hab gerade im Makrobuch einen Tippfehler gefunden
Auf Seite 210 steht True auch in Anführungszeichen.... naja, wird bei der nächsten Ausgabe berichtigt.