Outlook-Workshop - Email auslesen - Teil 1
In den Foren auch häufig erfragt ist die Möglichkeit zum Auslesen von Emails. Hier lernen wir wie man den Inhalt von Emails auslesen und in eine Exceldatei eintragen kann. Im Beispiel werden Absender, Absender-Emailadresse, das Sendedatum und die Namen der Anhänge ausgelesen.
Kommen wir zuerst zum Aufbau der Tabelle.
Kommen wir nun zur Prozedur. Sie müssen in dieser den Namen des Kontos und des Tabellenblattes anpassen.
Option Explicit
Public Sub ReadMailItems()
Dim olapp As Object
Dim olName As Object
Dim olHFolder As Object
Dim olUFolder As Object
Dim strAttCount As String
Dim olItemsCount As Long
Dim lngAttCount As Long
Dim letzteZeile As Long
On Error Resume Next
Set olapp = CreateObject("Outlook.Application")
Set olName = olapp.GetNamespace("MAPI")
Set olHFolder = olName.Session.Folders("RMH Software") ' Kontoname
Set olUFolder = olHFolder.Folders("Posteingang") 'Ordnername
letzteZeile = Sheets("Master").Range("A" & Rows.Count).End(xlUp).Row
For olItemsCount = 1 To olUFolder.Items.Count
With olUFolder.Items.Item(olItemsCount)
For lngAttCount = 1 To .Attachments.Count
If strAttCount = "" Then
strAttCount = .Attachments.Item(lngAttCount).Filename
Else
strAttCount = strAttCount & vbCrLf & .Attachments.Item(lngAttCount).Filename
End If
Next lngAttCount
Sheets("Master").Range("A" & olItemsCount + letzteZeile).Value = olHFolder.Name & "->" & olUFolder.Name
Sheets("Master").Range("B" & olItemsCount + letzteZeile).Value = .Sender
Sheets("Master").Range("C" & olItemsCount + letzteZeile).Value = .SenderEmailAddress
Sheets("Master").Range("D" & olItemsCount + letzteZeile).Value = .ReceivedTime
Sheets("Master").Range("E" & olItemsCount + letzteZeile).Value = .Subject
Sheets("Master").Range("F" & olItemsCount + letzteZeile).Value = strAttCount
strAttCount = ""
End With
Next olItemsCount
On Error GoTo 0
End Sub