Home-›Foren-›Outlook-›Outlook VBA-›Email Anhänge in Outlook 2007 speichern und aus Email löschen
- Dieses Thema hat 4 Antworten sowie 3 Stimmen und wurde zuletzt vor 19:16 um 12. Mai 2009 von Unbekannt aktualisiert.
- AutorBeitrag
- 14. April 2009 um 10:02 #48530SchaefersTeilnehmer
Hi,
auf Seite https://www.mailhilfe.de/beitrag-outlook-anhnge-aus-nachrichten-entfernen-und-automatisch-abspeichern-1326-html steht der unten stehende Code um Anhänge zu speichern und zu löschen. Leider funktioniert das Makro nicht. Ich weiss nicht ob es an Outlook 2007 liegt oder ob der Code falsch ist. Könnte das bitte jemand mal überprüfen?
Fehlermeldung ist: Fehler beim Kompilieren. Erwartet Zeilennr oder Sprungmarke oder Anweisung oder Anweisungsende
Vielen Dank
GregorSub AnhaengeSpeichern()
\’Festlegen der Parameter
Dim myOrt As String
Dim myOlApp As New Outlook.Application
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim myteils, myteil, myAnhänge, myAnhang As Object
\’Hier wird nach dem Ort gefragt wo gespeichert werden soll, _
wenn Sie den Pfad ändern. Muss dieser vorher schon erstellt sein
myOrt = InputBox(\”Speicherort\”, \”Anhänge Speichern unter: \”, \”C:\”)
On Error Resume Next
\’arbeitet die einzelnen Nachrichten ab
Set myOlExp = myOlApp.ActiveExplorer
Set myOlSel = myOlExp.Selection
\’für alle Teile…
For Each myteil In myOlSel
\’Anhänge festlegen
Set myAnhänge = myteil.Attachments
\’wenn welche dar sind, dann
If myAnhänge.Count > 0 Then
\’fügt einen Hinweis in die Email ein
myteil.Body = myteil.Body & vbCrLf & _
\”Entfernte Anhänge:\” & vbCrLf
\’und für alle Anhänge…
For i = 1 To myAnhänge.Count
\’nun werden Sie am Speicherort abgelegt
myAnhänge(i).SaveAsFile myOrt & _
myAnhänge(i).DisplayName
\’hier wird Name und der Ort in der Nachricht eingetragen
myteil.Body = myteil.Body & _
\”Datei: \” & myOrt & _
myAnhänge(i).DisplayName & vbCrLf
Next i
\’für alle Anhänge…
While myAnhänge.Count > 0
\’entferne es (wird für Outlook 2002/2003 benötigt)
\’myAnhänge.Remove 1
\’entferne es (wird für Outlook 2000 benötigt)
myAnhänge(1).Delete
Wend
\’abspeichern ohne Anhang
myteil.Save
End If
Next
\’free variables
Set myteils = Nothing
Set myteil = Nothing
Set myAnhänge = Nothing
Set myAnhang = Nothing
Set myOlApp = Nothing
Set myOlExp = Nothing
Set myOlSel = Nothing
Resume
End Sub
[Editiert am 14/4/2009 von Mailhilfe]
22. April 2009 um 12:56 #170530MichaelBauerTeilnehmerHallo,
diese Dinger gehören da nicht rein.
Viele Grüße
Michael Bauer5. Mai 2009 um 23:27 #170860UnbekanntTeilnehmerVielen Dank. Es mußten allerdings noch die Unterstriche und folgenden Zeilenumbrüche weg.
Unten der funktionierende Code für Outlook 2007. Dateien stehen dann in C in diesem BeispielDa gleich die nächste Frage: Wer kann mir zeigen was ich ändern muß, damit ich den Speicherort selbst mit dem Explorer wählen kann und wenn wir schon dabei sind, wie sorge ich dafür das mein Gesamtdateiname dann so lautet: Datum(Format:YYYYMMDD)_Sendernachname_Dateiname
Sub AnhaengeSpeichern()
\’Festlegen der Parameter
Dim myOrt As String
Dim myOlApp As New Outlook.Application
Dim myOlExp As Outlook.Explorer
Dim myOlSel As Outlook.Selection
Dim myteils, myteil, myAnhänge, myAnhang As Object
\’Hier wird nach dem Ort gefragt wo gespeichert werden soll, wenn Sie den Pfad ändern. Muss dieser vorher schon erstellt sein
myOrt = InputBox(\”Speicherort\”, \”Anhänge Speichern unter: \”, \”C:\”)
On Error Resume Next
\’arbeitet die einzelnen Nachrichten ab
Set myOlExp = myOlApp.ActiveExplorer
Set myOlSel = myOlExp.Selection
\’für alle Teile…
For Each myteil In myOlSel
\’Anhänge festlegen
Set myAnhänge = myteil.Attachments
\’wenn welche dar sind, dann
If myAnhänge.Count > 0 Then
\’fügt einen Hinweis in die Email ein
myteil.Body = myteil.Body & vbCrLf & \”Entfernte Anhänge:\” & vbCrLf
\’und für alle Anhänge…
For i = 1 To myAnhänge.Count
\’nun werden Sie am Speicherort abgelegt
myAnhänge(i).SaveAsFile myOrt & myAnhänge(i).DisplayName
\’hier wird Name und der Ort in der Nachricht eingetragen
myteil.Body = myteil.Body & \”Datei: \” & myOrt & myAnhänge(i).DisplayName & vbCrLf
Next i
\’für alle Anhänge…
While myAnhänge.Count > 0
\’entferne es (wird für Outlook 2002/2003 benötigt)
\’myAnhänge.Remove 1
\’entferne es (wird für Outlook 2000 benötigt)
myAnhänge(1).Delete
Wend
\’abspeichern ohne Anhang
myteil.Save
End If
Next
\’free variables
Set myteils = Nothing
Set myteil = Nothing
Set myAnhänge = Nothing
Set myAnhang = Nothing
Set myOlApp = Nothing
Set myOlExp = Nothing
Set myOlSel = Nothing
Resume
End Sub
12. Mai 2009 um 19:16 #170994UnbekanntTeilnehmerDa gleich die nächste Frage: Wer kann mir zeigen was ich ändern muß, damit ich den Speicherort selbst mit dem Explorer wählen kann und wenn wir schon dabei sind, wie sorge ich dafür das mein Gesamtdateiname dann so lautet: Datum(Format:YYYYMMDD)_Sendernachname_Dateiname
12. Mai 2009 um 19:16 #170995UnbekanntTeilnehmerDa gleich die nächste Frage: Wer kann mir zeigen was ich ändern muß, damit ich den Speicherort selbst mit dem Explorer wählen kann und wenn wir schon dabei sind, wie sorge ich dafür das mein Gesamtdateiname dann so lautet: Datum(Format:YYYYMMDD)_Sendernachname_Dateiname
- AutorBeitrag