Shaune hat ein Makro geschrieben, das Produktinformationsblätter auf einem PDF-Writer druckt. Wenn er auf dem PDF-Writer druckt, setzt das Makro den Standarddrucker für das System zurück, auf dem es ausgeführt wird. Wenn also jemand versucht, regelmäßig zu drucken (nachdem das Makro fertig ist), geht Word weiterhin davon aus, dass der Benutzer auf dem drucken möchte PDF-Writer. Shaune sucht nach einer Möglichkeit für sein Makro, den PDF-Writer vorübergehend zu verwenden, ohne den Standarddrucker zurückzusetzen.

Die schlechte Nachricht, Shaune, ist, dass Sie den Drucker nicht zurücksetzen können. Wenn Sie die ActivePrinter-Eigenschaft zurücksetzen, geht Word davon aus, dass der von Ihnen angegebene Drucker der aktive (Standard-) Drucker bleibt, bis Sie ihn speziell zurücksetzen.

Die gute Nachricht ist, dass Sie auch die ActivePrinter-Eigenschaft lesen können. Dies bedeutet, dass Ihr Makro den Drucker speichern kann, den die Person vor der Ausführung des Makros ausgewählt hat, und dann die ActivePrinter-Eigenschaft vor dem Beenden zurücksetzen kann. Das Ergebnis ist, dass der Benutzer nie bemerkt, dass der Standarddrucker geändert wurde, weil Ihr Makro die Einstellungen erkannt und dann wieder geändert hat. Diese Technik wird folgendermaßen verwendet:

Sub PrinterTechnique()

Dim sCurrentPrinter as String     Dim sPDFwriter as String

' perform whatever tasks need to be done prior to printing ' make sure you also initialize the sPDFwriter string with ' the name of your PDF writer

' save current printer name, then change to PDF writer     sCurrentPrinter = Application.ActivePrinter     Application.ActivePrinter = sPDFwriter

' print document, then go back to the original printer     ActiveDocument.PrintOut     Application.ActivePrinter = sCurrentPrinter

' continue with the rest of your macro

End Sub

Beachten Sie in diesem Beispiel, dass der aktive Drucker zuerst in der Variablen sCurrentPrinter gespeichert wird und der aktive Drucker dann auf den Wert in der Variablen sPDFwriter festgelegt wird. (Wie bereits erwähnt, müssen Sie sPDFwriter so initialisieren, dass es einen gültigen Druckernamen enthält.) Nach Abschluss des Druckvorgangs wird der aktive Drucker auf das zurückgesetzt, was Sie zuvor in der Variablen sCurrentPrinter gespeichert haben.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.

(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (9808) gilt für Microsoft Word 2007, 2010, 2013 und 2016. Eine Version dieses Tipps für die ältere Menüoberfläche von Word finden Sie hier: