Ordner Gelöschte Objekte bei Outlook-Start leeren

Zuletzt geändert am 03. April 2013

Wer am Feierabend schnell nach Hause möchte, hat manchmal keine Zeit, das automatische Leeren des Ordners "Gelöschte Objekte" abzuwarten und beendet Outlook® auf unsanfte Art und Weise.

Das kann unter Umständen Beschädigungen der Pst-Datei zur Folge haben und Datenverlust nach sich ziehen. Eine Option zum Leeren des Ordners bei Programmstart gibt es in Outlook® zwar nicht, jedoch kann diese Funktion mit etwas VBA nachgerüstet werden.

Zur Verwendung dieses Beispiels beachten Sie bitte die wichtigen Hinweise, sowie den Workshop VBA in Outlook® verwenden. Den Code bitte in das Modul DieseOutlookSitzung einfügen.

Ab Outlook® 2000

Option Explicit
 
Private Sub Application_Startup()
 
    '=====================================================================
    ' Leert bei Programmstart den Ordner "Gelöschte Objekte"
    ' (c) Peter Marchert - http://www.outlook-stuff.com
    ' 2009-07-07 Version 1.0.0
    '=====================================================================
 
    Dim objTrash As Outlook.MAPIFolder
    Dim objItems As Outlook.Items
    Dim objItem As Object
    Dim lngLoop As Long
 
    On Error Resume Next
 
    '---------------------------------------------------------------------
    ' Ordner "Gelöschte Objekte" referenzieren
    '---------------------------------------------------------------------
    Set objTrash = Outlook.Session.GetDefaultFolder(olFolderDeletedItems)
 
    '---------------------------------------------------------------------
    ' Alle Elemente im Ordner referenzieren
    '---------------------------------------------------------------------
    Set objItems = objTrash.Items
 
    '---------------------------------------------------------------------
    ' Alle Elemente bearbeiten
    '---------------------------------------------------------------------
    For lngLoop = objItems.Count To 1 Step -1
 
        '-----------------------------------------------------------------
        ' Einzelnes Element referenieren
        '-----------------------------------------------------------------
        Set objItem = objItems(lngLoop)
 
        '-----------------------------------------------------------------
        ' Element löschen
        '-----------------------------------------------------------------
        objItem.Delete
 
        '-----------------------------------------------------------------
        ' Outlook® für andere Aufgaben Zeit geben
        '-----------------------------------------------------------------
        DoEvents
 
    Next
 
    '---------------------------------------------------------------------
    ' Clean Up
    '---------------------------------------------------------------------
    Set objItem = Nothing
    Set objItems = Nothing
    Set objTrash = Nothing
 
End Sub