Hallo,
folgendes Makro-Problem:
Mit einem kleinen Perl-Programm [2] starte ich ein Makro [1], das (in diesem vereinfachten Beispiel) weiter nichts tut, als in einer bestehenden CALC-Datei ("E:\TMP\RunMacroHidden.ods") in die Zelle "A1" die Zeichenkette "Hello world !" zu schreiben
So lange die beiden Makro-Zeilen | ' aPV1(0).name = "Hidden" | und | ' aPV1(0).value = True | (entnommen von [4]) auskommentiert sind funktioniert alles prima.
Jetzt möchte ich aber, dass das Ganze "Hidden" abläuft, die Tabellendatei nicht geöffnet wird.
Wenn ich nun die beiden oben genannten Zeilen de-kommentiere, kommt für die Makrozeile "oF = ThisComponent.CurrentController.Frame" die Fehlermeldung "BASIC-Laufzeitfehler. Eigenschaft oder Methode nicht gefunden: CurrentController."
Im Prinzip meine ich schon zu verstehen, warum: Da nix mehr angezeigt wird, gibt es wohl auch keinen "CurrentController". Und in Folge davon hat dann auch die Objekt-Variable "oF", die bei den "uno"-Kommandos benötigt wird, sicherlich auch keinen Inhalt.
So meine Frage:
Was muss man anders beziehungsweise noch zusätzlich angeben, damit die Fehlermeldung nicht mehr kommt und die Objekt-Variable "oF" die "uno"-Kommandos mit der benötigten Information versorgt ?
In [3] "OpenOffice.org-Makros" sowie [4] "OpenOffice.org Makros - Kochbuch" wird zwar eine Menge zur Funktionsweise von "StarDesktop"/"Frames"
ausgeführt und in [4] erscheint mir die Zeile "oDoc.getCurrentController().getFrame().getContainerWindow().setVisible(true)" sehr hinweisverdächtig was zu tun ist, aber dennoch hat es bei mir nicht den Geistesblitz für die richtigen Schlussfolgerungen erzeugt - leider, ich komme da nicht wirklich weiter :-(( ...
Vielen Dank im Voraus für Hinweise und Tipps,
Grüße
Hans-Werner