In diesem Blogbeitrag zeigen wir Ihnen, wie Sie Outlook und Excel clever kombinieren können, um automatisiert E-Mails mit Anhang an eine Liste von Empfängern zu senden. Mit einigen wenigen Zeilen VBA-Code schaffen wir es, einen nahezu autonomen Prozess zu implementieren. Dies spart nicht nur Zeit, sondern minimiert auch das Risiko von Fehlern.
Ob Sie ein Unternehmer sind, der monatliche Rechnungen versenden muss, oder ein Teamleiter, der wöchentliche Updates an seine Mitarbeiter schickt, dieser Artikel hat für jeden etwas zu bieten.
Dieser Code geht davon aus, dass Sie eine Excel-Tabelle mit einer Spalte für E-Mail-Adressen („A“) und einer Spalte für den Anhangpfad („B“) haben.
Zuerst sollten Sie sicherstellen, dass die Microsoft Outlook Bibliothek in Excel hinzugefügt ist:
- Öffnen Sie den VBA-Editor (Alt + F11).
- Wählen Sie „Extras“ -> „Verweise“ aus der Menüleiste.
- Suchen und setzen Sie einen Haken bei „Microsoft Outlook xx.0 Object Library“, wobei „xx.0“ für Ihre Version von Outlook steht.
Hier ist der Code:
Sub SendEmailsWithAttachments()
Dim OutApp As Object
Dim OutMail As Object
Dim ws As Worksheet
Dim cell As Range
Dim emailAddr As String
Dim attachPath As String
' Initialisiere Outlook
Set OutApp = CreateObject("Outlook.Application")
Set ws = Worksheets("Sheet1") ' Namen des Arbeitsblatts anpassen
' Durchlaufe alle Zeilen in Spalte A
For Each cell In ws.Columns("A").Cells.SpecialCells(xlCellTypeConstants)
' E-Mail-Adresse und Anhangspfad lesen
emailAddr = cell.Value
attachPath = cell.Offset(0, 1).Value
' E-Mail erstellen
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = emailAddr
.Subject = "Ihr Betreff hier" ' Betreff eingeben
.Body = "Ihr Text hier" ' E-Mail-Text eingeben
.Attachments.Add attachPath ' Anhang hinzufügen
.Send ' E-Mail senden
End With
' Ressourcen freigeben
Set OutMail = Nothing
Next cell
' Ressourcen freigeben
Set OutApp = Nothing
End Sub
Code-Erklärung:
Dim OutApp As Object, Dim OutMail As Object
: Wir deklarieren die Outlook-Anwendung und Mail-Objekte.Set OutApp = CreateObject("Outlook.Application")
: Initialisiert ein neues Outlook-Objekt.Set ws = Worksheets("Sheet1")
: Hier setzen wir das Arbeitsblatt, das die E-Mail-Adressen und Anhänge enthält.For Each cell In ws.Columns("A").Cells.SpecialCells(xlCellTypeConstants)
: Diese Schleife geht durch jede Zelle in der Spalte A des angegebenen Arbeitsblatts..To = emailAddr
: Die E-Mail-Adresse wird aus der aktuellen Zelle gelesen..Attachments.Add attachPath
: Fügt den Anhang hinzu, der in der Spalte direkt neben der E-Mail-Adresse steht..Send
: Schickt die E-Mail.
Bitte beachten Sie: Der Code sendet die E-Mails sofort. Wenn Sie die E-Mails nur vorbereiten möchten, verwenden Sie .Display
anstelle von .Send
.
Stellen Sie sicher, dass Sie die Namen der Arbeitsblätter und Spalten an Ihr spezielles Excel-Dokument anpassen. Ebenso sollten Sie die Betreff- und Textplatzhalter an Ihre Bedürfnisse anpassen.
Tooltipp:
Wenn Sie verschiedene Anhänge versenden möchten, empfehlen wir Ihnen die Verwendung des Mail Merge Toolkits als Erweiterung für Outlook.