shnuuu
Goto Top

Nur Erste Seite Drucken mit Outlook2003 Makro

Hallo,

ich möchte gerne ein Makro unter Outlook2003 Schreiben, mit dem ich nur die Erste Seite einer Email Drucken kann.
Nun habe ich folgendes Makro:


Private Declare Sub Sleep Lib "kernel32" (ByVal dwMS As Long)
Sub PrintFirstPage()

'-------------------------------------------------------------------------------
' Druckermenü aufrufen (Datei, Drucken)
'-------------------------------------------------------------------------------

SendKeys "%dd"
Sleep 2000


'-------------------------------------------------------------------------------
' 1. Seite auswählen
'-------------------------------------------------------------------------------
SendKeys "%s"

'-------------------------------------------------------------------------------
' Ausdrucken
'-------------------------------------------------------------------------------

SendKeys "{Enter}"

End Sub

Ich muss dazu sagen das ich totaler VBA Neuling bin, ist mein erstes mal das ich was damit zu tun habe.
Wenn ich dieses Makro nun ausführe, dauert es eine kleine Zeit (Jenachdem wie hoch der Sleep befehl gesetzt ist)
und dann öffnet sich nur das Druckmenü. Es ist nicht der Haken auf Seite 1. gesetzt und der Enter Befehl kommt auch nicht mehr an.

Es scheint wohl irgendwie mit dem Sleep Befehl zusammen zu hängen. Die letzten beiden Befehle scheinen wohl ausgeführt zu werden, bevor das Druckmenü sich öffnet.
Ich hab das Gefühl das der Sleep Befehl als aller erstes ausgeführt wird und nicht in der Reihenfolge wie ich es vorgegeben habe..

Kann mir da mal jemand auf die sprünge helfen?

Content-Key: 175018

Url: https://administrator.de/contentid/175018

Printed on: April 18, 2024 at 02:04 o'clock

Member: Shnuuu
Shnuuu Oct 24, 2011 at 09:51:09 (UTC)
Goto Top
Vielleicht interessierts ja jemanden:

Es lag in der tat an dem Sleep befehl. Dieser ist für mein Vorhaben nicht geeignet gewesen.
Ich habe es nun über eine Pause Funktion hinbekommen:

Public Sub Pause(Seconds As Single)
Dim Timer1 As Single, Timer2 As Single, currentDate As Date
currentDate = Date
Timer1 = Timer + Seconds
Timer2 = Timer1 - 86400 '24 Stunden
While ((Timer() < Timer1) And (currentDate = Date)) Or _
((Timer() < Timer2) And (currentDate + 1 = Date))
DoEvents 'Andere Prozesse nicht behindern
Wend
End Sub