Startseite
» MS OFFICE
»
So senden Sie E-Mails mit VBA in Excel: 11 Schritte für Outlook
So senden Sie E-Mails mit VBA in Excel: 11 Schritte für Outlook
Mit Excel VBA können Sie eine Outlook-E-Mail mit Empfänger, Betreff, Nachricht und Arbeitsmappenanhang erstellen. Diese 11-Schritte-Anleitung verwendet das klassische Outlook für Windows und öffnet die Nachricht als Entwurf, damit Sie sie vor dem Senden überprüfen können. Da Microsoft VBA-Makros und das Outlook-Objektmodell in neueren Outlook-Versionen als nicht unterstützt auflistet, funktioniert dieses COM-basierte Beispiel weder mit der neuen Outlook-Version noch mit Outlook im Browser.
Speichern Sie vor Beginn Ihre Arbeit und vergewissern Sie sich, dass das klassische Outlook installiert und ein E-Mail-Konto eingerichtet ist. Der Code verwendet späte Bindung, daher ist kein versionsspezifischer Outlook-Bibliotheksverweis erforderlich.
In 11 Schritten eine E-Mail mit Excel VBA versenden
1. Vergewissern Sie sich, dass das klassische Outlook verfügbar ist.
Öffnen Sie die Desktop-Version von Outlook und stellen Sie sicher, dass das Postfach Nachrichten senden kann. Dieses Makro benötigt das klassische Outlook für Windows; Outlook.com, Outlook im Web und das neue Outlook stellen das hier verwendete COM-Automatisierungsobjekt nicht bereit. Siehe den Funktionsvergleich von Microsoft für das klassische und das neue Outlook .
Schritt 1: Verwenden Sie die Windows-Desktopversionen von Excel und dem klassischen Outlook.
2. Speichern Sie die Arbeitsmappe als Datei mit Makros.
In Excel wählen Sie „Datei“ > „Speichern unter“ und anschließend „Excel-Arbeitsmappe mit Makros (*.xlsm)“ . Eine normale .xlsx-Datei kann keinen VBA-Code speichern. Speichern Sie die Arbeitsmappe an einem Ort, auf den Sie zugreifen können, und merken Sie sich den Pfad.
Schritt 2: Wählen Sie beim Speichern das Makro-fähige .xlsm-Format.
3. Öffnen Sie den Visual Basic Editor.
Öffnen Sie die Arbeitsmappe in der Excel-Desktop-App und drücken Sie Alt+F11 . Suchen Sie im Projekt-Explorer das Projekt, dessen Name mit dem Ihrer Arbeitsmappe übereinstimmt. Falls der Editor ausgeblendet ist, drücken Sie Strg+R, um den Projekt-Explorer anzuzeigen.
Schritt 3: Das Arbeitsmappenprojekt wird im Visual Basic Editor angezeigt.
4. Legen Sie ein Standardmodul ein.
Wählen Sie im Visual Basic Editor das Arbeitsmappenprojekt aus, klicken Sie auf Einfügen > Modul und verwenden Sie den neuen Codebereich. Ein Standardmodul eignet sich für Makros, die Sie bei Bedarf ausführen.
Schritt 4: Fügen Sie ein Standardmodul für das Makro ein.
5. Makro zum Erstellen von Entwürfen hinzufügen
Fügen Sie diese Prozedur in das Modul ein. Sie prüft, ob die Arbeitsmappe gespeichert wurde, verifiziert den Anhangspfad, erstellt eine Outlook-Nachricht und zeigt diese an, ohne sie zu senden.
Schritt 5: Fügen Sie die Prozedur dem neuen Modul hinzu.
Option Explicit
Sub CreateOutlookDraft()
Dim olApp As Object
Dim olMail As Object
Dim attachmentPath As String
If Len(ThisWorkbook.Path) = 0 Then
MsgBox "Save the workbook before creating the email.", vbExclamation
Exit Sub
End If
attachmentPath = ThisWorkbook.FullName
If Len(Dir$(attachmentPath)) = 0 Then
MsgBox "Workbook attachment not found: " & attachmentPath, vbExclamation
Exit Sub
End If
On Error Resume Next
Set olApp = GetObject(, "Outlook.Application")
If olApp Is Nothing Then
Set olApp = CreateObject("Outlook.Application")
End If
On Error GoTo 0
If olApp Is Nothing Then
MsgBox "Classic Outlook could not be opened.", vbExclamation
Exit Sub
End If
Set olMail = olApp.CreateItem(0)
With olMail
.To = "recipient@example.com"
.CC = ""
.Subject = "Monthly report"
.Body = "Hi," & vbCrLf & vbCrLf & _
"Please review the attached monthly report." & _
vbCrLf & vbCrLf & "Thanks,"
.Attachments.Add attachmentPath
.Display
End With
Set olMail = Nothing
Set olApp = Nothing
End Sub
Ändern Sie dies recipient@example.comauf den gewünschten Empfänger. Fügen Sie .CCbei Bedarf Adressen hinzu .Subjectund bearbeiten Sie anschließend den Text .Body. Setzen Sie die Textwerte in Anführungszeichen und verwenden Sie `<br>`, &um Zeilenumbrüche zu erzeugen vbCrLf. Das Beispiel verwendet eine Klartextnachricht; HTML-Formatierung ist nicht erforderlich.
Schritt 6: Ersetzen Sie den Beispielempfänger; bearbeiten Sie Betreff und Nachrichtenzeile auf die gleiche Weise.
7. Wählen Sie den Anhang aus.
Die Methode hängt ThisWorkbook.FullNamedie gespeicherte, makrofähige Arbeitsmappe wie beschrieben an. Um stattdessen einen separaten Bericht anzuhängen, ersetzen Sie die Zuweisung durch den vollständigen Dateipfad, z. B. `/proc ..."C:\Reports\MonthlyReport.xlsx"Attachments.Add
Schritt 7: Prüfen Sie, ob der Pfad zur Dateianhang auf eine vorhandene Datei verweist.
8. Makro speichern
Drücken Sie im Editor Strg+S oder wechseln Sie zurück zu Excel und speichern Sie die Arbeitsmappe. Behalten Sie das .xlsm-Format bei; beim Speichern als .xlsx wird das VBA-Projekt entfernt. Speichern Sie die Datei an einem vertrauenswürdigen Ort und aktivieren Sie keine Makros in Arbeitsmappen unbekannter Herkunft.
Schritt 8: Speichern Sie die Arbeitsmappe unter Beibehaltung der Dateiendung .xlsm.
9. Führen Sie die Prozedur aus.
Klicken Sie in die Datei CreateOutlookDraftund drücken Sie F5 oder verwenden Sie den Befehl „Ausführen“ im Editor. Falls Excel das Makro blockiert, befolgen Sie die Richtlinien Ihrer Organisation. Microsoft weist darauf hin, dass Office Makros in Dateien, die als aus dem Internet stammend gekennzeichnet sind, standardmäßig blockiert. Lesen Sie daher die Sicherheitshinweise für Makros, anstatt den Schutz global zu deaktivieren.
Schritt 9: Führen Sie das Makro im Visual Basic Editor aus.
10. Überprüfen Sie den Entwurf und senden Sie ihn selbst ab.
Outlook sollte eine Nachricht mit ausgefüllter Adresse, Betreffzeile, Nachrichtentext und Arbeitsmappen-Anhang öffnen. Überprüfen Sie jeden Empfänger und öffnen Sie gegebenenfalls den Anhang. Klicken Sie erst nach der Entwurfsprüfung auf „ Senden.Display “. Der Code verwendet absichtlich `<code><p></code>` anstelle von `<code> <p></code>`, .Sendum zu verhindern, dass Tippfehler oder veraltete Dateien automatisch per E-Mail versendet werden.
Schritt 10: Überprüfen Sie den Outlook-Entwurf und die beigefügte Arbeitsmappe.Senden Sie die Nachricht erst nach Bestätigung der Nachrichtendetails.
11. Häufige Probleme beheben
Die Fehlermeldung „ActiveX-Komponente kann kein Objekt erstellen“ oder „Outlook ist nicht verfügbar“ lautet: Stellen Sie sicher, dass das klassische Outlook für Windows installiert und konfiguriert ist. Die neue Outlook-Version und das Browser-Outlook bieten nicht das erforderliche Outlook-Objektmodell.
Das Makro wird nicht ausgeführt: Stellen Sie sicher, dass die Arbeitsmappe im .xlsm-Format vorliegt und beachten Sie die Sicherheitswarnung von Excel. Aktivieren Sie nicht alle Makros, um eine Warnung zu umgehen; vertrauen Sie nur Dateien und Herausgebern, die Sie kennen.
Die Anlage fehlt: Speichern Sie die Arbeitsmappe zuerst oder korrigieren Sie den vollständigen Pfad zum separaten Bericht. Prüfen Sie, ob sich die Datei auf einem nicht verfügbaren Laufwerk befindet.
Dieser Workflow ist für Nachrichten gedacht, die Sie in Outlook prüfen und versenden. Für wiederkehrende oder unbeaufsichtigte geschäftliche E-Mails verwenden Sie einen von Ihrem Unternehmen genehmigten Automatisierungsdienst und überprüfen Sie Empfänger, Anhänge und Berechtigungen separat.
Falls Office ein Makro blockiert, befolgen Sie die Sicherheitshinweise von Microsoft und die Richtlinien Ihrer Organisation.