Excel VBA Outlook-Funktion
Wir arbeiten täglich an sehr vielen Excel-Dateien und senden diese täglich an viele Benutzer. Wir schreiben die gleiche Nachricht täglich in die E-Mail und senden diese Excel-Datei. Dies gibt uns den Umfang der Automatisierung dieser Aufgabe. Du hast es richtig gehört. Diese Aufgabe, eine E-Mail zu schreiben und die Datei zu senden, kann mithilfe von VBA automatisiert werden. Der Grund dafür ist, dass VBA eine Referenz mit verschiedenen Microsoft-Objekten wie Outlook, Word, PowerPoint, Paint usw. verwenden kann.
So können wir die E-Mail mit Hilfe von VBA versenden. Jetzt werden Sie sicher alle gespannt sein, wie wir mit Hilfe von VBA eine E-Mail versenden können.
In diesem Artikel erfahren Sie, wie Sie Outlook als Microsoft-Objekt von Excel mit VBA-Codierung verwenden und wie Sie mithilfe von VBA eine E-Mail mit Anhang senden können.
Wie benutze ich die Excel VBA Outlook Funktion?
Um die VBA Outlook-Funktion zu verwenden, müssen wir zwei Dinge tun.
Sie können diese VBA Outlook Excel-Vorlage hier herunterladen - VBA Outlook Excel-Vorlage- Verweisen Sie auf Microsoft Outlook-Objekt aus der Objektbibliothek in VBA.
- Schreiben Sie den VBA-Code, um E-Mails im VBA-Modul zu senden.
# 1 - Referenz von Outlook aus Excel
Wie Sie wissen, ist Outlook ein Objekt, und wir müssen einen Verweis auf das Outlook-Objekt bereitstellen. Es gibt also eine Objektreferenzbibliothek in VBA, die wir als Referenz verwenden müssen.
Führen Sie die folgenden Schritte aus, um die Objektreferenzbibliothek zu verwenden.
Schritt 1: Klicken Sie auf der Registerkarte Entwickler auf Visual Basic, um den VB-Editor zu öffnen.
Schritt 2: Gehen Sie zu Extras und wählen Sie dann Referenzen aus, wie im folgenden Screenshot gezeigt.
Schritt 3: Scrollen Sie in der Referenzobjektbibliothek nach unten und wählen Sie "Microsoft Outlook 16.0-Objektbibliothek", um sie für Excel VBA verfügbar zu machen.
Je nach Microsoft Office kann die Outlook-Version unterschiedlich sein. In unserem Fall ist es 16.0. Sie können " Microsoft Outlook 14.0 Object Library" verwenden, wenn dies die auf Ihrem Computer angezeigte Version ist.
Aktivieren Sie das Kontrollkästchen von Microsoft Outlook (siehe Abbildung oben). Jetzt können wir das Microsoft Outlook-Objekt in Excel VBA verwenden.
Dieser Vorgang zum Festlegen des Verweises auf „MICROSOFT OUTLOOK 16.0 OBJECT LIBRARY“ wird als Early Binding bezeichnet. Ohne Einstellung der Objektbibliothek auf "MICROSOFT OUTLOOK 16.0 OBJECT LIBRARY" können die IntelliSense-Eigenschaften und -Methoden von VBA nicht verwendet werden, wodurch das Schreiben des Codes erschwert wird.
# 2 - Schreiben Sie einen Code zum Senden von E-Mails aus VBA Outlook aus Excel
Führen Sie die folgenden Schritte aus, um den VBA-Code zum Senden von E-Mails aus Outlook in Excel zu schreiben.
Schritt 1: Erstellen Sie eine Unterprozedur, indem Sie das Makro benennen. Wir werden das Makro als "send_email" bezeichnen, wie im folgenden Screenshot gezeigt.
Code:
Option Explicit Sub Send_email () End Sub
Schritt 2: Definieren Sie die Variable als Outlook. Anwendung wie im folgenden Screenshot gezeigt. Dies ist der Verweis auf die VBA Outlook-Anwendung.
Code:
Option Explicit Sub Send_email () OutlookApp als Outlook.Application End Sub dimmen
Schritt 3: Wir müssen eine E-Mail in Outlook senden. Definieren Sie daher eine andere Variable als " Outlook.Mailitem " (siehe Abbildung unten).
Code:
Option Explicit Sub Send_email () OutlookApp als Outlook.Application dim OutlookMail als Outlook.MailItem End Sub dim
Schritt 4: In den vorherigen Schritten haben wir die Variable definiert, jetzt müssen wir sie einstellen.
Setzen Sie nun die erste Variable "Outlook-Anwendung" auf "New Outlook.Application" (siehe Abbildung unten).
Code:
Option Explicit Sub Send_email () OutlookApp als Outlook.Application dim OutlookMail als Outlook.MailItem dim OutlookApp = New Outlook.Application End Sub setzen
Schritt 5: Stellen Sie nun die zweite Variable "Outlook Mail" mit dem folgenden Code ein.
Code:
Option Explicit Sub Send_email () OutlookApp als Outlook.Application dim OutlookMail als Outlook.MailItem set OutlookApp = New Outlook.Application set OutlookMail = OutlookApp.CreateItem (olMailItem) End Sub
Schritt 6: Wir können jetzt VBA Outlook mit der Anweisung „ With “ verwenden, wie im folgenden Screenshot gezeigt.
Code:
Option Explicit Sub Send_email () OutlookApp als Outlook.Application dimen OutlookMail als Outlook.MailItem dimen OutlookApp = New Outlook.Application OutlookMail = OutlookApp.CreateItem (olMailItem) With OutlookMail End Sub
Wir haben jetzt Zugriff auf alle E-Mail-Elemente wie "An", "CC", "BCC", "Betreff", "Text der E-Mail" und viele weitere Elemente.
Schritt 7: Innerhalb der “With” -Anweisung können wir eine Liste sehen, indem wir einen Punkt einfügen, der als “Intellisense List” bekannt ist.
Schritt 8: Wählen Sie zuerst das Body-Format als olFormatHtml aus, wie im folgenden Screenshot gezeigt.
Code:
Mit OutlookMail .BodyFormat = olFormatHTML End Sub
Schritt 9: Wählen Sie " .Display ", um die E-Mail wie im folgenden Screenshot gezeigt anzuzeigen.
Code:
Mit OutlookMail .BodyFormat = olFormatHTML .Display End Sub
Schritt 10: Wählen Sie " .HTMLbody ", um die E-Mail wie im folgenden Screenshot gezeigt zu schreiben.
Code:
Mit OutlookMail .BodyFormat = olFormatHTML .Display .HTMLBody = "Schreiben Sie Ihre E-Mail hier" End Sub
Wir müssen uns beim Schreiben der E-Mail im VBA-Code einige Dinge merken.
“
Wird verwendet, um den Zeilenumbruch zwischen zwei Zeilen einzuschließen. Um eine Signatur in die E-Mail einzufügen, müssen Sie "& .HTMLbody" eingeben
Das folgende Beispiel zeigt, wie die Mail in VBA geschrieben wird.
Code:
Mit OutlookMail .BodyFormat = olFormatHTML .Display .HTMLBody = "Sehr geehrtes ABC" & "
"&" Bitte finden Sie die angehängte Datei "& .HTMLBody End Sub
Schritt 11: Nun müssen wir den Empfänger der E-Mail hinzufügen. Dazu müssen Sie ".To" verwenden.
Code:
.To = " "
Schritt 12: Wenn Sie jemanden in "CC" & "BCC" hinzufügen möchten, können Sie ".CC" und ".BCC" verwenden, wie im folgenden Screenshot gezeigt.
Code:
.CC = " " .BCC = " "
Schritt 13: Um einen Betreff für die E-Mail, die wir senden, hinzuzufügen, können Sie " .Subject " verwenden ( siehe Abbildung unten).
Code:
.Subject = "TEST MAIL"
Schritt 14: Mithilfe der Eigenschaft ".Attachment" können wir unsere aktuelle Arbeitsmappe als Anhang in die E-Mail einfügen. Dazu deklarieren Sie zunächst eine Variable Source als String.
Code:
Dim source_file As String
Verwenden Sie dann den folgenden Code, um die Datei in der E-Mail anzuhängen.
Code:
source_file = ThisWorkbook.FullName .Attachments.Add source_file
Hier wird ThisWorkbook für die aktuelle Arbeitsmappe und verwendet. FullName wird verwendet, um den vollständigen Namen des Arbeitsblatts abzurufen .
Schritt 15: Jetzt ist der letzte Code, um endlich die E-Mail zu senden, für die wir " .send " verwenden können. Stellen Sie jedoch sicher, dass Sie die With- und Sub-Prozedur mit „End with“ und „End Sub“ schließen (siehe Abbildung unten).
Damit ist der Code endlich bereit, eine E-Mail zu versenden. Wir müssen jetzt nur das Makro ausführen.
Schritt 16: Führen Sie den Code durch Drücken von F5 oder Ausführen aus und sehen Sie sich die Ausgabe an.
Endgültiger vollständiger Code
Im Folgenden finden Sie den endgültigen Code zum Senden einer E-Mail mithilfe von VBA Outlook.
Code:
Option Explicit Sub Send_email () OutlookApp als Outlook.Application dimen OutlookMail als Outlook.MailItem dimen Quelldatei als String setzen OutlookApp = New Outlook.Application OutlookMail = OutlookApp.CreateItem (olMailItem) mit OutlookMail .BodyFormat = olFormatHTML .Display. Liebes ABC "&"
"&" Bitte finden Sie die angehängte Datei "& .HTMLBody .To =" ".CC =" ".BCC =" ".Subject =" TEST MAIL "source_file = ThisWorkbook. FullName .Attachments.Add source_file .Send End With End Sub
Beispiel einer VBA-Outlook-Funktion
Angenommen, es gibt einen Teamleiter, der täglich eine E-Mail senden möchte, um die Aktivitäten der einzelnen Mitglieder zu verfolgen. Die E-Mail wird so aussehen.
„ Hallo Team,
Bitten Sie Sie, Ihre Aktionen zu jedem Ihrer Folgemaßnahmen noch heute bis 11.00 Uhr mitzuteilen.
Danke & Grüße,
Unbekannt
“
Befolgen Sie die oben genannten Schritte, um auf das Microsoft-Objekt zu verweisen und die VBA-Codierung zu schreiben, oder ändern Sie den Code einfach entsprechend.
Bei gleichbleibendem Code müssen wir also einige Dinge im Code ändern, z. B. die E-Mail-ID des Empfängers, den Betreff und den Text der E-Mail, und es wird kein Anhang in der E-Mail angezeigt.
Nachfolgend finden Sie den geänderten Code, den wir zum Schreiben dieser E-Mail verwenden.
Code:
Sub Send_teamemail () OutlookApp als Outlook.Application dim OutlookMail als Outlook.MailItem set OutlookApp = New Outlook.Application set OutlookMail = OutlookApp.CreateItem (olMailItem) mit OutlookMail .BodyFormat = olFormatHTML .Display .HTMLBody = "Hi Team.
"&"
"&" Bitten Sie Sie, heute bis 20.00 Uhr Ihre Aktionen für jeden Ihrer Folgeartikel mitzuteilen. "& .HTMLBody .To =" ; ; ".Subject =" Team-Nachverfolgung ".Send End With End Sub
Nach dem Ausführen des Makros sehen Sie, dass die E-Mail automatisch aus Ihrem Outlook gesendet wurde.
Dinge, an die man sich erinnern sollte
- Stellen Sie zunächst sicher, dass Sie Microsoft Outlook auf Ihrem Computer installiert und sich in Ihrem Konto angemeldet haben.
- Stellen Sie sicher, dass das Kontrollkästchen für Microsoft Outlook in der Objektbibliothek immer aktiviert ist. Der Code wird nicht ausgeführt und löst einen Fehler aus, wenn er nicht aktiviert ist.
- Das Definieren von Variablen und das Setzen von Variablen ist in der VBA-Codierung sehr wichtig. Ohne Variablen funktioniert ein Code nicht.
- Stellen Sie sicher, dass in Outlook bereits mindestens eine Signatur erstellt wurde, wenn Sie der E-Mail eine Signatur hinzufügen möchten.
- Verwenden Sie immer "
”, Um Zeilenabstände in der Mail einzugeben.
Empfohlene Artikel
Dies ist eine Anleitung zu VBA Outlook. In diesem Abschnitt wird erläutert, wie Sie E-Mails aus Outlook mit VBA-Codes in Excel senden, zusammen mit einem Beispiel und einer herunterladbaren Excel-Vorlage. Im Folgenden finden Sie einige nützliche Excel-Artikel zu VBA -
- Was ist ein VBA-OverFlow-Fehler?
- Passen Sie die Symbolleiste für den Schnellzugriff in Excel an
- Beispiele für VBA Named Range
- So senden Sie E-Mails aus Excel VBA
- Wie verwende ich Option Explicit in VBA?