Word VBA, beforePrint?

3 Antworten

Hallo,

soll der Button ganz verschwinden oder wirklich nur kleiner angezeigt werden? oder ehr gesagt warum möchtest du den Button kleiner machen?

Gruß

Dennis

336spencer  22.07.2019, 10:46

Das frage ich mich auch...

1

Wenn du in das Event gelangst, ist der Druck bereits ausgelöst worden. Im Event druckst du dann erneut, was erklärt, weshalb du zwei Ausdrucke hast.

Du solltest innerhalb des BeforePrint-Events Cancel auf True setzen.

Sollte ActiveDocument.PrintOut das Ereignis erneut triggern (ausprobieren), kannst du die Ereignisbehandlung vorübergehend mit EnableEvents = False deaktivieren.

Statt die Buttons klein zu machen, kannst du auch einmal probieren, sie auf unsichtbar zu setzen oder schauen, ob es an ihnen eine Eigenschaft gibt, mit der eingestellt werden kann, ob sie gedruckt werden. Oder du schaust mal in den Druckeinstellungen der Applikation (Seite einrichten oder so), ob man einstellen kann, dass Steuerelemente nicht gedruckt werden.

xGlumi  22.07.2019, 10:54

Eine kleine Ergänzung zu deiner Antwort:

Wenn du in das Event gelangst, ist der Druck bereits ausgelöst worden

Das ist nicht ganz richtig.

Wenn man in das Event gelangt, dann befindet man sich noch vor dem Drucken, und kann den eigentlichen Druck-Vorgang mit "cancel = true" stoppen.

MFG xGlumi

1
Suboptimierer  22.07.2019, 11:04
@xGlumi

Dass Cancel auf True gesetzt werden sollte, entspricht genau meinem Ratschlag.

Der Druck wurde ausgelöst, denn sonst wüsste der Interpreter nicht, dass er in das Ereignis BeforePrint einsteigen soll.

Das Auslösen des Drucks geschieht aus der Applikation heraus, zum Beispiel über einen Klick auf das Druckersymbol. Ob der Druck abgebrochen wird oder nicht, ändert nichts daran, dass der Druck ausgelöst wurde.

1
xGlumi  22.07.2019, 13:55
@Suboptimierer

Ok, dann habe ich deine Aussage nur falsch ausgefasst, entschuldige.

Es kam mir so rüber, als wenn du ausgesagst hast, dass der Druck (Request an den Drucker) bereits ausgelöst wurde.

Dann ignorier meinen Kommentar einfach :)

MFG xGlumi

1

Du kannst deine eigene Drucklogik schreiben (Ohne dass Word selbst nocheinmal zusätzlich druckt), indem du als erstes die "cancel"-Variable auf "true" setzt.

Anschließend kannst du deinen eigenen Druck ausführen.

MFG xGlumi

Woher ich das weiß:eigene Erfahrung