StartDownloadsServiceBeispieleWorkshopsKontakt DeutschEnglish
 
Beispiele
Allgemein
Outlook®
 
Awarded by
Microsoft since 2005:
mvp logo
VBOffice Info
Besucher1831481
Aufrufe6877740
Links
Impressum
Datenschutz
Kontakt
Sonstiges: Timer
Autor: Michael BauerHomepage
Datum: 18.01.2006Zugriffe: 36152
  
Beschreibung

Wenn Sie eine Funktion in relativ kurzen Intervallen immer wieder starten müssen, dann bietet sich ein Timer an. Während es in VB6 dafür ein Timer-Steuerelement gibt, müssen Sie sich in VBA für Outlook des Win32 API bedienen.

Das folgende Beispiel zeigt, wie Sie die API-Aufrufe in ein eigenes Modul auslagern und das Timer-Signal im Modul 'DieseOutlookSitzung' empfangen können: Dazu erstellen Sie die als Public deklarierte Methode 'Timer', welche dann in den festgelegten Intervallen aufgerufen wird. Eingeschaltet wird der Timer in 'Application_Startup', also gleich wenn Outlook startet, mit einem Intervall von 60000 Millisekunden (= 1 Minute).

Es ist wichtig, einen API-Timer abzuschalten, bevor die Anwendung beendet wird.

Private Sub Application_Startup()
  EnableTimer 60000, Me
End Sub

Public Sub Timer()
  ' Called from the timer
End Sub

Private Sub Application_Quit()
  DisableTimer
End Sub

' <Modul: modTimer.bas>
Option Explicit
Private Declare Function SetTimer Lib "user32.dll" (ByVal hwnd As Long, _
  ByVal nIDEvent As Long, ByVal uElapse As Long, _
  ByVal lpTimerFunc As Long) As Long

Private Declare Function KillTimer Lib "user32.dll" (ByVal hwnd As Long, _
  ByVal nIDEvent As Long) As Long

Const WM_TIMER = &H113

Private hEvent As Long
Private m_oCallback As Object

Public Sub TimerProc(ByVal hwnd As Long, ByVal uMsg As Long, _
  ByVal wParam As Long, ByVal lParam As Long _
)
  If uMsg = WM_TIMER Then
    m_oCallback.Timer
  End If
End Sub

Public Function EnableTimer(ByVal msInterval As Long, oCallback As Object) As Boolean
  If hEvent <> 0 Then
    Exit Function
  End If
  hEvent = SetTimer(0&, 0&, msInterval, AddressOf TimerProc)
  Set m_oCallback = oCallback
  EnableTimer = CBool(hEvent)
End Function

Public Function DisableTimer()
  If hEvent = 0 Then
    Exit Function
  End If
  KillTimer 0&, hEvent
  hEvent = 0
End Function
' <modTimer.bas>
 
 

ReplyAll warnt Sie, bevor Sie unbeabsichtigt allen Empfängern einer E-Mail antworten oder wenn Sie ein vertraulicher BCC-Empfänger der E-Mail ... [weiter]

 

Blitzschneller Zugriff auf die Hauptkategorienliste, gemeinsame Kategorien im Netzwerk, eine Erinnerungsfunktion ... [weiter]

 

SAM legt automatisch Absender, Signatur und Speicherort für gesendete Mails fest, z.B. anhand der ... [weiter]

 

OLKeeper verhindert zuverlässig, dass Mitarbeiter Outlook schließen und dadurch Termine oder E-Mails ... [weiter]

So entgeht Ihnen kein Auftrag mehr:
Telefonservice und Sekretariatsservice