VBOffice

Ordnerinhalt leeren

So löschen Sie den Inhalt eines Ordners mit einem Klick.

Zuletzt geändert: 10.01.2017 | Aufrufe: 84.392  | #51
◀ Vorheriges Beispiel Nächstes Beispiel ▶

Inhalt

ReplyAll ReplyAll
Mit diesem Addin für Outlook erhalten Sie in verschiedenen Situationen eine Warnung, bevor Sie auf eine Email versehentlich allen anderen Empfängern antworten.

Alle Elemente des Ordners löschen

Um z.B. den Inhalt der Spam-Ordners zu löschen, gibt es im Kontextmenü einen Befehl. Für die meisten anderen Ordner gibt es den Befehl aber nicht. Dieses Beispiel ersetzt diesen fehlenden Befehl und löscht den kompletten Inhalt des gerade aktuellen Ordners. Es gibt einen besonderen Hinweis, wenn es sich bei dem Ordner um einen Suchordner handelt. Suchordner sind nur Ansichten auf Ordner und können die Inhalte des ganzen Postfaches anzeigen. In diesem Fall ist das Löschen ist den meisten Fällen wohl nicht gewünscht.

Ziehen Sie sich einfach eine Schaltfläche auf die Symbolleiste, und Sie haben die Funktion 'Ordner leeren' für jeden beliebigen Ordner.

(Dieses Makro funktioniert erst ab Outlook 2007.)

Für IMAP-Ordner haben wir hier noch ein Beispiel: IMAP-Nachrichten löschen


tip  So fügen Sie Makros in Outlook ein
Public Sub EmptyFolder()
  Dim Folder As Outlook.Folder
  Dim FolderDeleted As Outlook.Folder
  Dim Store As Outlook.Store
  Dim Items As Outlook.Items
  Dim Item As Object
  Dim Pa As Outlook.PropertyAccessor
  Dim i As Long, Count As Long
  Dim Delete As Boolean, IsSearchFolder As Boolean
  Dim Msg As String
  
  Set Folder = Application.ActiveExplorer.CurrentFolder
  Set Items = Folder.Items
  Count = Items.Count
  If Count = 0 Then Exit Sub
  
  Set Pa = Folder.PropertyAccessor
  IsSearchFolder = (Pa.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x36010003") = 2)
  If IsSearchFolder Then
    Msg = "Wirklich " & Count & " Elemente aus einem Suchordner löschen?"
    If MsgBox(Msg, vbQuestion Or vbYesNoCancel Or vbDefaultButton2) <> vbYes Then Exit Sub
  Else
    Msg = Count & " Elemente löschen?"
    If MsgBox(Msg, vbQuestion Or vbYesNoCancel) <> vbYes Then Exit Sub
  End If
  
  Set Store = Folder.Store
  Set FolderDeleted = Store.GetDefaultFolder(olFolderDeletedItems)
  Delete = (Folder.EntryID = FolderDeleted.EntryID)
  
  If Delete Then
    For i = Count To 1 Step -1
      Items(i).Delete
    Next
  Else
    For i = Count To 1 Step -1
      Set Item = Items(i)
      Item.UnRead = False
      Item.Save
      Item.Move FolderDeleted
    Next
  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.

Ausgewählte Elemente des Ordners löschen

Dieser Code macht das gleiche wie oben, nur dass nicht der ganze Ordnerinhalt gelöscht wird, sondern nur die ausgewählten Elemente.

Public Sub EmptySelection()
  Dim Folder As Outlook.Folder
  Dim FolderDeleted As Outlook.Folder
  Dim Store As Outlook.Store
  Dim Item As Object
  Dim Selection As Outlook.Selection
  Dim Pa As Outlook.PropertyAccessor
  Dim i As Long, Count As Long
  Dim Delete As Boolean, IsSearchFolder As Boolean
  Dim Msg As String
  
  Set Folder = Application.ActiveExplorer.CurrentFolder
  Set Selection = Application.ActiveExplorer.Selection
  Count = Selection.Count
  If Count = 0 Then Exit Sub
  
  Set Pa = Folder.PropertyAccessor
  IsSearchFolder = (Pa.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x36010003") = 2)
  If IsSearchFolder Then
    Msg = "Wirklich " & Count & " Elemente aus einem Suchordner löschen?"
    If MsgBox(Msg, vbQuestion Or vbYesNoCancel Or vbDefaultButton2) <> vbYes Then Exit Sub
  Else
    Msg = Count & " Elemente löschen?"
    If MsgBox(Msg, vbQuestion Or vbYesNoCancel) <> vbYes Then Exit Sub
  End If
  
  Set Store = Folder.Store
  Set FolderDeleted = Store.GetDefaultFolder(olFolderDeletedItems)
  Delete = (Folder.EntryID = FolderDeleted.EntryID)
  
  If Delete Then
    For i = Selection.Count To 1 Step -1
      Set Item = Selection(1)
      Item.Delete
    Next
  Else
    For i = Selection.Count To 1 Step -1
      Set Item = Selection(i)
      Item.UnRead = False
      Item.Save
      Item.Move FolderDeleted
    Next
  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.

Outlook 2003 und älter

Dieses einfache Beispiel prüft nicht, ob es sich beim Ordner um einen Suchordner handelt und funktioniert auch für Outlook 2003 und älter.

Public Sub EmptyFolder()
  Dim Folder As Outlook.MAPIFolder
  Dim Items As Outlook.Items
  Dim Msg As String
  Dim i As Long

  Set Folder = Application.ActiveExplorer.CurrentFolder
  Set Items = Folder.Items

  Msg = Items.Count & " Element(e) aus " & Folder.Name & " löschen?"

  If MsgBox(Msg, vbYesNo) = vbYes Then
    For i = Items.Count To 1 Step -1
      Items.Remove i
    Next
  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