das ist relativ einfach zu erreichen, wenn für jeden Computer, der auf
diesen Drucker zugreifen soll, der Drucker(treiber) zweimal
installiert wird: Einmal mit der Einstellung Duplexdruck (in meinem
Beispiel Kyocera FS-1800 D) und einmal für einseitigen Druck (in
meinem Beispiel Kyocera FS-1800), wobei hier der Duplexdruck
ausgeschaltet wird.
Dann kannst Du entweder zwei Icons in die Symbolleiste aufnehmen, die
dem jeweiligen Druckertreiber zugeordnet sind oder ein Icon, dem das
folgende VBA-Makro zugeordnet ist:
Sub DruckKyocera()
'
' Druckt einseitig auf FS-1800, mehrseitig auf FS-1800 D
'
' vorher eingestellten Drucker speichern:
Dim strPrinterOld As String
strPrinterOld = Application.ActivePrinter
' Wahl des Druckertreibers je nach Seitenzahl:
If ActiveDocument.ComputeStatistics(wdStatisticPages) = 1 Then
Application.ActivePrinter = "Kyocera FS-1800"
Else
Application.ActivePrinter = "Kyocera FS-1800 D"
End If
' Ausdruck (mit einer Vielzahl von optionalen Parametern)
Application.PrintOut
' Drucker wieder zurücksetzen
Application.ActivePrinter = strPrinterOld
End Sub
Makro einfach kopieren und die Druckernamen entsprechend den
Druckernamen in der Systemsteuerung wählen.
--
Gruß
hoe = Friedrich Höglmeier
Etwaige Tippfehler dürfen ignoriert werden!
"Dr. Friedrich Höglmeier" schrieb:
> .
>
> Der Makro funktioniert suuuper :-)
Ich frage mich ob deine Sorge "[...] braucht eeeewig bis die Seite gedruckt
wird [...]" wirklich gelöst ist, denn daqs Makro macht das Gleiche wie dein
Makro.
Egal, trotzdem zwei Hinweise...
> Application.ActivePrinter = "Kyocera FS-1800"
Das Ändern des Druckers würde ich nicht so machen, denn damit wird der
Standarddrucker geändert und das hat Auswirkungen auf alle anderen laufenden
Programme. Darum hier lesen
- Changing the selected (current) printer in Word without changing the
system default printer
http://word.mvps.org/faqs/macrosvba/ChangeCurPrinter.htm
> Application.PrintOut
Die .PrintOut-Methode sollte innerhalb eines Makro immer mit dem Argument
"Background:=False" aufgerufen werden.
- .PrintOut Background:=False
--
Thomas Gahler
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)
- Windows Vista (SP2), Office 2007 (SP2)
"Thomas Gahler" schrieb:
> .
>
> ja, das Drucken dauert noch immer so lange, aber ich dachte, daran kann
> man
> nichts ändern :-)
Ich würde mal die Unterschiede zwischen deinen "beiden" Druckern suchen.
Eigentlich sollte nur die Einstellung 'Duplexer aktiv' unterschiedlich sein.
Vielleicht findest du ja auf diesem Wege dein Bremser.
Oder desaktiviere bei deinem "Brother HL-5340D Duplex" mal den Duplexer,
wird er jetzt langsam? Wohl kaum, oder.
Sub DruckMakro()
' Drucken per Makro automatisch Simplex oder Duplex
' Einstellen der Druckereinstellungen je nach Seitenzahl:
If ActiveDocument.ComputeStatistics(wdStatisticPages) = 1 Then
Application.PrintOut ManualDuplexPrint:=False
Else
Application.PrintOut ManualDuplexPrint:=True
End If
End Sub
Druckt in beiden Varianten gleich (richtig) schnell. Nur weiß ich nicht, ob
ich das von Dir angesprochene ...Background:=False noch brauche!? Das
funktionierte nämlich nicht hinter den "ManualDuplexPrint"s.
MfG Carsten
"Thomas Gahler" schrieb:
> .
>
> Druckt in beiden Varianten gleich (richtig) schnell. Nur wei� ich nicht,
> ob
> ich das von Dir angesprochene ...Background:=False noch brauche!?
Wenn das dein ganzes makro ist, dann ben�tiigst du 'Background' nicht
unbedingt. ich empfehle den Einsatz grunds�tzlich, denn selten sind die
Makros so kurz und wenn dann paralell gedruckt wird anstelle von
sequenziell, dann werden fehler gesucht, die eigentlich keine sind.
(bestes Beispiel ist immer drucken in einer Schleife mit nummerierten
Dukumenten ab mit Background:=true werden diese auf dem Drucker der Reihe
nach ausgegeben, mit Background:=false da macht der Spooler was er will,
weil das Betriebssystem einfach viele Druckausftr�ge ausgeben muss)
Du zeigst jedoch nicht, dass denn nihct mehr geht. Schade.
Und mit deinem ManualDuplexPrint bearbeitest du ein urspr�ngliches Problem
(Duplex ja /nein nicht). Ich dachte du h�ttest einen echten Duplexdrucker.
Apropos, es gibt auch ein API zum den Duplexer ein-/auszuschalten.
--
Thomas Gahler
Co-Autor von �Microsoft Word-Programmierung.
Das Handbuch� (MS Press)
- Windows XP (SP3), Office XP (SP3)
> Und mit deinem ManualDuplexPrint bearbeitest du ein ursprüngliches Problem
> (Duplex ja /nein nicht). Ich dachte du hättest einen echten Duplexdrucker.
Dachte ich auch: einen Brother HL-5340D.
>Apropos, es gibt auch ein API zum den Duplexer ein-/auszuschalten.
Könntest Du mir sagen, wo ich das herbekomme incl. einer
"Bedienungsanleitung"?
Danke für die geduldige Hilfe,
Carsten
"Thomas Gahler" schrieb:
> Hallo Carsten
>
>
> > Druckt in beiden Varianten gleich (richtig) schnell. Nur weiß ich nicht,
> > ob
> > ich das von Dir angesprochene ...Background:=False noch brauche!?
> Wenn das dein ganzes makro ist, dann benötiigst du 'Background' nicht
> unbedingt. ich empfehle den Einsatz grundsätzlich, denn selten sind die
> Makros so kurz und wenn dann paralell gedruckt wird anstelle von
> sequenziell, dann werden fehler gesucht, die eigentlich keine sind.
> (bestes Beispiel ist immer drucken in einer Schleife mit nummerierten
> Dukumenten ab mit Background:=true werden diese auf dem Drucker der Reihe
> nach ausgegeben, mit Background:=false da macht der Spooler was er will,
> weil das Betriebssystem einfach viele Druckausfträge ausgeben muss)
>
>
> Du zeigst jedoch nicht, dass denn nihct mehr geht. Schade.
>
> Und mit deinem ManualDuplexPrint bearbeitest du ein ursprüngliches Problem
> (Duplex ja /nein nicht). Ich dachte du hättest einen echten Duplexdrucker.
>
>
> Apropos, es gibt auch ein API zum den Duplexer ein-/auszuschalten.
>
>
> --
> Thomas Gahler
> Co-Autor von »Microsoft Word-Programmierung.
> Das Handbuch« (MS Press)
>
>
> - Windows XP (SP3), Office XP (SP3)
>
>
> .
>
>> Du zeigst jedoch nicht, dass denn nihct mehr geht. Schade.
> Den Satz verstehe ich nicht. Meiner Meinung nach funktioniert ja jetzt
> alles...
Du hast geschrieben �[...] Background:=False noch brauche!? Das
funktionierte n�mlich nicht hinter den "ManualDuplexPrint"s. [...]� Du hast
aber nicht geschrieben zu welchem Fehler es kommt oder was nicht mehr
funktioniert. Das meine ich...
>> Und mit deinem ManualDuplexPrint bearbeitest du ein urspr�ngliches
>> Problem
>> (Duplex ja /nein nicht). Ich dachte du h�ttest einen echten
>> Duplexdrucker.
> Dachte ich auch: einen Brother HL-5340D.
Dann verstehe ich nicht weshalb du an dieser Eigenschaft manipulierst.
In der Hilfe steht
<OnlineHilfe>
ManualDuplexPrint Variant optional. True, um ein beidseitig bedrucktes
Dokument auf einem Drucker ohne Kit f�r doppelseitiges Drucken zu drucken.
Wenn dieses Argument den WertTrue hat, werden die Eigenschaften
PrintBackground und PrintReverse ignoriert. Steuern Sie die Ausgabe w�hrend
des manuellen doppelseitigen Druckens mithilfe der Eigenschaften
PrintOddPagesInAscendingOrder und PrintEvenPagesInAscendingOrder. Je nach
ausgew�hlter bzw. installierter Sprachunterst�tzung, wie z. B. Deutsch
(Standard), ist dieses Argument m�glicherweise nicht verf�gbar.
</OnlineHilfe>
>>Apropos, es gibt auch ein API zum den Duplexer ein-/auszuschalten.
> K�nntest Du mir sagen, wo ich das herbekomme incl. einer
> "Bedienungsanleitung"?
Zum Beispiel hier...
http://support.microsoft.com/kb/q230743/