VBOffice

Gelesene Email löschen und nächste öffnen

Mit VBA könnnen Sie von einer Email zur nächsten wechseln und dabei die gerade gelesene Email gleich entfernen.

Zuletzt geändert: 08.01.2007 | Aufrufe: 50.043  | #40
◀ Vorheriges Beispiel Nächstes Beispiel ▶
SAM SAM
Legen Sie fest, mit welcher "Identität" Ihre Emails beim Empfänger erscheinen sollen. Mit SAM bestimmen Sie den Absender und Speicherort für Emails anhand von Regeln.

Wenn Sie eine E-Mail geöffnet haben, können Sie über zwei Schaltflächen zur nächsten oder vorherigen Mail blättern. Wer nun die bereits gelesene Mail gleich löschen möchte, hat es nicht leicht: Entweder Sie wechseln in die Ordneransicht, markieren das vorherige, gelesene Element nochmal und löschen es dann oder Sie löschen die gelesene Mail, solange sie noch geöffnet ist, d.h. vor dem Blättern zur nächsten. Dann aber schließt sich das Mailfenster und Sie müssen erst in der Ordneransicht die nächste markieren und explizit öffnen.

Dieses Code-Beispiel demonstriert, wie Sie mit nur einem Mausklick das nächste Element öffnen und das gerade gelesene löschen.

In Outlook 2000 funktioniert das Beispiel leider nicht, wenn Word der Maileditor ist, weil dann das NewInspector-Ereignis nicht gefeuert wird.

Sie können in einer geöffneten E-Mail per Hand über 'Symbolleisten anpassen' eine Schaltfläche erstellen, welche die Funktion 'NextItemAndDeleteCurrent' aufruft. Alternativ können Sie natürlich auch eine neue Symbolleiste mit Schaltfläche per Code erzeugen.


tip  So fügen Sie Makros in Outlook ein
Private WithEvents m_Inspectors As Outlook.Inspectors
Private WithEvents m_Inspector As Outlook.Inspector
Private WithEvents m_NextButton As Office.CommandBarButton

Private Sub Application_Startup()
  Set m_Inspectors = Application.Inspectors
End Sub

Private Sub m_Inspector_Close()
  Set m_NextButton = Nothing
  Set m_Inspector = Nothing
End Sub

Private Sub m_Inspectors_NewInspector(ByVal Inspector As Outlook.Inspector)
  Dim obj As Object

  If Len(Inspector.CurrentItem.EntryID) Then
    Set m_Inspector = Inspector
    Set obj = Inspector.CommandBars.FindControl(, 360)
    If TypeOf obj Is Office.CommandBarPopup Then
      Set m_NextButton = obj.Controls(1)
    Else
      Set m_NextButton = obj
    End If
  End If
End Sub

Public Sub NextItemAndDeleteCurrent()
  Dim CurrItem As Object

  Set CurrItem = Application.ActiveInspector.CurrentItem
  If Len(CurrItem.EntryID) Then
    m_NextButton.Execute
    CurrItem.Delete
  End If
End Sub
OLKeeper OLKeeper
Der OLKeeper verhindert zuverlässig, dass Sie Microsoft Outlook unbeabsichtigt schließen und so etwa wichtige Emails verpassen würden.
email  Senden Sie eine Nachricht