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: 49.813  | #40
◀ Vorheriges Beispiel Nächstes Beispiel ▶
Category-Manager Category-Manager
Mit dem Category-Manager können Sie Outlook Kategorien gruppieren, synchronisieren und filtern, neuen Emails automatisch die Kategorie des Absenders zuweisen und vieles mehr. Das Addin ist auch für IMAP geeignet.

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
Reporter Reporter
Mit dem Reporter erstellen Sie Berichte für Ihre Outlook Daten. Mit wenigen Klicks werden Werte aus Aufgaben, Terminen und dem Journal summiert.
email  Senden Sie eine Nachricht