thekorn
Erfahrenes Mitglied
Ich hab ein, wie ich finde, recht komisches Problem:
Ich habe einen VBA-Code gebastelt, der alle in einem Outlook-Posteingangsordner befindlichen E-mails nach Anhängen durchsucht, diese speichert, und sie dann aus dieser E-mail löscht.
Funktioniert alles wunderbar, bis auf das löschen!
Das lustige daran: ich glaube den "Fehler" zu kennen!
Die Methode ".Remove" gibt es sowohl in der Outlook- als auch in der VBA-Bibliothek. Da Office standartmäßig (?!) der VBA-Bibliothek die höchste Priorität einräumt (Extras->Verweise), wird anscheinend immer die ".Remove"-Methode von VBA verwendet, und die entfernt nicht das Objekt als solches, sondern nur die Zuweisung darauf. Dagegen würde die Outlook ".Remove"-Methode das Objekt als solches, also den Anhang, löschen.
Wenn das also der Fehler ist, suche ich nach einer Möglichkeit, im Code die ".Remove"-Methode von Outlook zu verwenden.
Aber vielleicht habe ich ja auch einen ganz anderen Fehler gemacht!
Vielen Dank im vorraus!
gruß
thekorn
Ich habe einen VBA-Code gebastelt, der alle in einem Outlook-Posteingangsordner befindlichen E-mails nach Anhängen durchsucht, diese speichert, und sie dann aus dieser E-mail löscht.
Code:
Public Sub anhang_speichern_neu()
'On Error Resume Next
Set Outl_App = CreateObject("Outlook.Application")
Set Namens_R = Outl_App.GetNamespace("MAPI")
Set Akt_Ordner = Namens_R.GetDefaultFolder(olFolderInbox) 'posteingang auswählen
Set Mail_Ordner = Akt_Ordner.Folders("speichern test") 'Unterordner wählen falls vorhanden
Set element_mail = Mail_Ordner.Items
'***
For i = 1 To element_mail.Count
'MsgBox (element_mail(i))
Set myAttachments = element_mail(i).Attachments
While myAttachments.Count > 0
'MsgBox (myAttachments(1))
myAttachments(1).SaveAsFile "C:\windows\desktop\sicherung\" & myAttachments.Item(1).DisplayName
myAttachments.Remove 1 '###########Macht er nicht!
Wend
Set myAttachments = Nothing
Next i
'objekte freigeben
Set Outl_App = Nothing
Set Namens_R = Nothing
Set Akt_Ordner = Nothing
Set Mail_Ordner = Nothing
Set element_mail = Nothing
End Sub
Funktioniert alles wunderbar, bis auf das löschen!
Das lustige daran: ich glaube den "Fehler" zu kennen!
Die Methode ".Remove" gibt es sowohl in der Outlook- als auch in der VBA-Bibliothek. Da Office standartmäßig (?!) der VBA-Bibliothek die höchste Priorität einräumt (Extras->Verweise), wird anscheinend immer die ".Remove"-Methode von VBA verwendet, und die entfernt nicht das Objekt als solches, sondern nur die Zuweisung darauf. Dagegen würde die Outlook ".Remove"-Methode das Objekt als solches, also den Anhang, löschen.
Wenn das also der Fehler ist, suche ich nach einer Möglichkeit, im Code die ".Remove"-Methode von Outlook zu verwenden.
Aber vielleicht habe ich ja auch einen ganz anderen Fehler gemacht!
Vielen Dank im vorraus!
gruß
thekorn