Spam per Makro löschen
#21
Hallo René,

hab ich gemacht, bleibt aber immer noch hängen und zwar
Code:
Set DeleteItem = olName.Session.GetItemFromID(EntryID)

Der gesamte Code sieht jetzt so aus ...
Code:
Public Sub ClearJunkMailFolders()

Dim olApp           As Outlook.Application
Dim olName          As Outlook.NameSpace
Dim olFolder        As Outlook.MAPIFolder
Dim olItems         As Outlook.Items
Dim EntryID         As String 'Element-ID

Dim olFoldersCount  As Long
Dim olItemsCount    As Long


Set olApp = Application

  With olApp
     Set olName = .GetNamespace("MAPI")
         For olFoldersCount = 1 To .Session.Accounts.Count
             Set olFolder = olName.Session.Folders(olFoldersCount).Folders("Junk-E-Mail")
                 olItemsCount = 0
                 Do While olFolder.Items.Count > 0
                          Set olItems = olFolder.Items(1)
                          EntryID = olItems.EntryID
                          olItems.Delete
                          Set DeleteItem = olName.Session.GetItemFromID(EntryID)
                          DeleteItem.Delete
                          olItemsCount = olItemsCount + 1
                 Loop
         Next olFoldersCount
  End With
End Sub
Top
#22
Hi Bernie,

(19.01.2015, 14:15)Bernie schrieb: hab ich gemacht, bleibt aber immer noch hängen und zwar
Code:
Set DeleteItem = olName.Session.GetItemFromID(EntryID)

und wo ist DeleteItem definiert?

Zum Merken: Jede Variable, die benutzt wird, sollte/muß vor Benutzung definiert/dimensioniert werden!
Top
#23
Hallo Ralf,

♥lichen Dank für deine Hilfe.

Der gesamte Code inkl. Änderungen stammt von René. Ich selber habe bei Outlook Variablen meine Probleme.

Weißt du, wie die Variable aussehen muss?
Top
#24
"DeleteItem" habe ich Deinem Code entnommen, müsstest Du auch noch deklarieren.
Top
#25
Hallo Rene,

hab aus meinem alten Code die Zeile in den neuen Code eingefügt
Code:
Dim DeleteItem      As Object 'Namespace bestimmen

Jetzt hängt es hier
Code:
Set olItems = olFolder.Items(1)

Gesamtcode
Code:
Public Sub ClearJunkMailFolders()

Dim olApp           As Outlook.Application
Dim olName          As Outlook.NameSpace
Dim olFolder        As Outlook.MAPIFolder
Dim olItems         As Outlook.Items

Dim EntryID         As String 'Element-ID

Dim olFoldersCount  As Long
Dim olItemsCount    As Long
Dim DeleteItem      As Object 'Namespace bestimmen


Set olApp = Application

  With olApp
     Set olName = .GetNamespace("MAPI")
         For olFoldersCount = 1 To .Session.Accounts.Count
             Set olFolder = olName.Session.Folders(olFoldersCount).Folders("Junk-E-Mail")
                 olItemsCount = 0
                 Do While olFolder.Items.Count > 0
                          Set olItems = olFolder.Items(1)
                          EntryID = olItems.EntryID
                          olItems.Delete
                          Set DeleteItem = olName.Session.GetItemFromID(EntryID)
                          DeleteItem.Delete
                          olItemsCount = olItemsCount + 1
                 Loop
         Next olFoldersCount
  End With

End Sub
Top
#26
Das wird bei Dir nichts. Dein Problem ist dass Dein Outlook den programmatischen Zugriff auf die Session.Accounts sperrt. Weshalb das so ist kann ich nicht sagen. Da bleibt Dir nur, mal direkt im Microsoft-Forum nachzufragen. http://answers.microsoft.com/de-de/
Top
#27
Hallo René,

Danke für deine Bemühungen!!! Thumps_up
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste