Outlook Spam-Ordner Leeren.
Wenn es einen Ordner mit dem Namen "Junk-E-Mail" gibt, wird von Outlook angelegt. Wird unter Menü Extras -> Organiseren erledigt.
kann mit diesem Codeder Ihalt nicht nur in den Papierkorb verschoben werden sondern die Mail werden danch auch gleich gelöscht.
Wie vorgehen?
- In den VBA-Editor wechseln (Tastenkombination Alt-F11).
- Menü ->Einfügen Modul auswählen.
- VBA-Code dort hineinkopieren.
- In Outlook Menü's anpassen aufrufen.
* Im Registerblatt Befehle zu Makros gehen und Projekt1.DeletJunk in die Sysbolleiste ziehen. (Projetkt1 kann auch anderst heißen)
* Jetzt noch ein Schaltflächensysbol auswählen. (Kann von anderen kopiert werden. bzw. per VBA-Code zugewiesen werden)
* Schießen und schon kann der Junk gelöscht werden.
VBA-Code:
Sub DeleteJunk() 'Dim oNamespace As Outlook.NameSpace Dim oF As MAPIFolder, oFActive As MAPIFolder Dim i%, j% Dim fFolderDeletedItems As Boolean 'Set oNamespace = GetNamespace("MAPI") On Error Goto Errors_ Set oFActive = ActiveExplorer.CurrentFolder If oFActive.Name = Session.GetDefaultFolder(olFolderJunk).Name OR _ oFActive.Name = Session.GetDefaultFolder(olFolderDeletedItems).Name Then Set oF = Session.GetDefaultFolder(olFolderInbox) '"Junk-E-Mail" bzw. "Gelöschte Objekte" war aktiv deshalb auf den Posteingang umschalten ActiveExplorer.SelectFolder oF End If Set oF = Session.GetDefaultFolder(olFolderJunk) Jump_: i = oF.Items.Count For j = 1 To i With oF.Items(j) .Categories = "Junk" .Save .Delete End With Next fFolderDeletedItems = -1 Set oF = Session.GetDefaultFolder(olFolderDeletedItems) JumpDelFolders_: i = oF.Items.Count For j = 1 To i With oF.Items(j) If .Categories = "Junk" Then .Delete End With Next eXit_: DoEvents If oFActive.Name = Session.GetDefaultFolder(olFolderJunk).Name OR _ oFActive.Name = Session.GetDefaultFolder(olFolderDeletedItems).Name Then ' zurück zum "Junk-E-Mail" bzw. "Gelöschte Objekte" Ordner ActiveExplorer.SelectFolder oFActive End If Set oF = Nothing Set oFActive = Nothing Exit Sub Errors_: If Err.Number = -2147352567 Then 'Array-Index außerhalb des zulässigen Bereichs. 'Beim löschen stimmt die Anzahl Index-Einträge nicht und deshalb nochmal löschen durchlaufen. If fFolderDeletedItems Then Resume JumpDelFolders_ Else Resume Jump_ End If Else Err.Clear GoTo eXit_ End If End Sub