Thema Datum  Von Nutzer Rating
Antwort
Rot Nur Anhang aus E-Mail speichern (VBA für Outlook)
10.02.2016 10:15:34 Christian
NotSolved
12.02.2016 08:32:07 Christian
NotSolved

Ansicht des Beitrags:
Von:
Christian
Datum:
10.02.2016 10:15:34
Views:
2438
Rating: Antwort:
  Ja
Thema:
Nur Anhang aus E-Mail speichern (VBA für Outlook)

Hallo zusammen,

ich verwende folgenden Code um die Anhänge aus den E-Mails zu speichern:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Public Sub SaveAttachments()
Dim objOL As Outlook.Application
Dim objMsg As Outlook.MailItem 'Object
Dim objAttachments As Outlook.Attachments
Dim objSelection As Outlook.Selection
Dim i As Long
Dim lngCount As Long
Dim strFile As String
Dim strFolderpath As String
Dim strDeletedFiles As String
  
    ' Get the path to your My Documents folder
    strFolderpath = CreateObject("WScript.Shell").SpecialFolders(16)
    On Error Resume Next
  
    ' Instantiate an Outlook Application object.
    Set objOL = CreateObject("Outlook.Application")
  
    ' Get the collection of selected objects.
    Set objSelection = objOL.ActiveExplorer.Selection
  
    ' Set the Attachment folder.
    strFolderpath = strFolderpath & "OLAttachments"
  
    'Use the MsgBox command to troubleshoot. Remove it from the final code.
    MsgBox strFolderpath
  
    ' Check each selected item for attachments. If attachments exist,
    ' save them to the Temp folder and strip them from the item.
    For Each objMsg In objSelection
  
    ' This code only strips attachments from mail items.
    ' If objMsg.class=olMail Then
    ' Get the Attachments collection of the item.
    Set objAttachments = objMsg.Attachments
    lngCount = objAttachments.Count
      
    'Use the MsgBox command to troubleshoot. Remove it from the final code.
    MsgBox objAttachments.Count
      
    If lngCount > 0 Then
      
    ' We need to use a count down loop for removing items
    ' from a collection. Otherwise, the loop counter gets
    ' confused and only every other item is removed.
      
    For i = lngCount To 1 Step -1
      
    ' Save attachment before deleting from item.
    ' Get the file name.
    strFile = objAttachments.Item(i).FileName
      
    ' Combine with the path to the Temp folder.
    strFile = strFolderpath & strFile
      
    ' Save the attachment as a file.
    objAttachments.Item(i).SaveAsFile strFile
      
    ' Delete the attachment.
    objAttachments.Item(i).Delete
      
    'write the save as path to a string to add to the message
    'check for html and use html tags in link
    If objMsg.BodyFormat <> olFormatHTML Then
        strDeletedFiles = strDeletedFiles & vbCrLf & "<file://" & strFile & ">"
        Else
        strDeletedFiles = strDeletedFiles & "<br>" & "<a href='file://" & _
        strFile & "'>" & strFile & "</a>"
    End If
      
    'Use the MsgBox command to troubleshoot. Remove it from the final code.
    MsgBox strDeletedFiles
      
    Next i
    'End If
      
    ' Adds the filename string to the message body and save it
    ' Check for HTML body
    If objMsg.BodyFormat <> olFormatHTML Then
        objMsg.Body = objMsg.Body & vbCrLf & _
        "The file(s) were saved to " & strDeletedFiles
    Else
        objMsg.HTMLBody = objMsg.HTMLBody & "<p>" & _
        "The file(s) were saved to " & strDeletedFiles & "</p>"
    End If
        objMsg.Save
'sets the attachment path to nothing before it moves on to the next message.
        strDeletedFiles = ""
  
    End If
    Next
      
ExitSub:
  
Set objAttachments = Nothing
Set objMsg = Nothing
Set objSelection = Nothing
Set objOL = Nothing
End Sub

Falls eine E-Mail jedoch noch weitere Daten, beispielsweise Bilddateien enthält, werden nicht nur die Anhänge gespeichert, sondern noch die weiteren Daten aus dieser E-Mail in dem Ordner abgelegt.

Kann man VBA irgendwie dazu bringen nur die "tatsächlichen" Anhänge zu verwenden?

 

Viele Grüsse


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Nur Anhang aus E-Mail speichern (VBA für Outlook)
10.02.2016 10:15:34 Christian
NotSolved
12.02.2016 08:32:07 Christian
NotSolved