Tipps & Tricks 05.05.2007, 21:45 Uhr

Excel-Datei per Makro an mehrere Empfänger mailen

Problem: Ich habe im Excel ein Makro hinterlegt, das mich direkt ins Outlook zum weiterversenden führt. Dabei wird das Excel-Dokument wunschgemäss als Anlage platziert. Da dieses Mail an bestimmte Empfänger gesendet werden soll, möchte ich diese bereits hinterlegt haben, sobald ich das Makro aktiviere. Kann ich das denn so im Makro auch hinterlegen?
Lösung: Sie können mit «Recipients:=Array» mehrere Empfänger definieren, die Ihre Mail mit dem Excel-Dokument im Anhang erhalten sollen.
Mittels folgendem Excel-Makro erstellt Outlook eine Mail an «test@example.com» und «testing@example.org». Die Betreffzeile lautet «Testmeldung von Excel 2007» und enthält Datum und Zeit, ausserdem sind im Mailtext die beiden Zeilen «Das ist ein Test.» sowie «Bitte ignorieren.» enthalten.
Wichtig: Passen Sie diese Daten im Makro-Code an Ihre Bedürfnisse an. Falls die Mail sofort gesendet werden soll, entfernen Sie aus der Zeile «Mail.Send» das einführende Hochkomma ('). Soll Outlook nach dem Versand geschlossen werden, löschen Sie aus der Zeile «OutApp.Quit» ebenfalls das Hochkomma. Wir empfehlen aber, die beiden Zeilen auskommentiert zu lassen, damit Sie die Mail noch einmal überprüfen können.
Das Makro zum Kopieren:
Sub ExcelDateiSenden()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim AWS As String
'Aktive Arbeitsmappe wird als Mail gesendet
AWS = ThisWorkbook.FullName
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = "test@example.com; testing@example.org"
.Subject = "Testmeldung von Excel 2007 " & Date & Time
.attachments.Add AWS
.Body = "Das ist ein Test." & vbCrLf & "Bitte ignorieren."
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
'Outlook schliessen
'OutApp.Quit
Set OutApp = Nothing
Set Nachricht = Nothing
End Sub
ACHTUNG: Die folgende, ursprünglich vorgestellte Makro-Variante versucht die Mail sofort zu senden. Wir raten deshalb davon ab, sie zu benutzen, sondern empfehlen die vorhin genannte Varainte.
Sub Senden()
ActiveWorkbook.SendMail _
Recipients:=Array _
("xyz@example.com", "test@example.org", "etc@example.com"), _
Subject:="Neukundenbestellung"
End Sub
Ersetzen Sie im Makro die Texte und die Empfängeradressen. Egal, welche Makro-Variante Sie verwenden wollen: Testen Sie ihre Funktion am besten zuerst mit Mailadressen, die Ihnen selbst gehören.



Kommentare
Es sind keine Kommentare vorhanden.