Seite 1 von 1

Was ist an diesem Makro falsch?

Verfasst: Do, 29.03.2007 15:58
von proximacentauri
Hallo!
Ich habe ein einfaches Makro aufgezeichnet was für einen Briefvorlage folgendes machen soll:

1. die Seitenvorlage auf "Briefkopf Kopie" ändern,
2. Dokument drucken,
3. die Seitenvorlage wieder auf "Briefkopf normal" ändern.

Das Makro habe ich auf eine Schaltfläche gelegt. Wenn ich nun darauf klicke, stürzt OO ab. Immer.

Was ist daran falsch???

Code: Alles auswählen

sub Kopie
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Template"
args1(0).Value = "Briefkopf Kopie Seite 1"
args1(1).Name = "Family"
args1(1).Value = 8

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


rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Copies"
args2(0).Value = 1
args2(1).Name = "Collate"
args2(1).Value = false

dispatcher.executeDispatch(document, ".uno:Print", "", 0, args2())


rem ----------------------------------------------------------------------
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Template"
args3(0).Value = "Briefkopf Seite 1"
args3(1).Name = "Family"
args3(1).Value = 8

dispatcher.executeDispatch(document, ".uno:StyleApply", "", 0, args3())


end sub
Vielen Dank schonmal für hilfreiche Tipps!

Viele Grüße,
Alex

Verfasst: Do, 29.03.2007 18:14
von Toxitom
Hey Axel,

keine Ahnung. Der Dispatcher-Code ist geheimnisvoll und schwer zu durchschauen. Möglicherweise stimmt das Timing nicht. Das könntest du ausprobieren, in dem du die drei Teile einzel ablaufen lässt - als eigenständige Makros - und so den Fehler eingrenzt.
Auf der anderen Seite - erwarte nicht zu viel vom Dispatcher Code....

Viele Grüße
Thomas

Verfasst: Do, 29.03.2007 18:41
von proximacentauri
Hey Thomas!

Danke für Deine Antwort.
Ich habe das Makro mal Step-by-step durchlaufen lassen. Komischerweise klappt alles und OO stürzt nicht ab!?!?!?

Kann mir jemand einen Tipp geben wie ich das selbst schreiben kann?