So senden Sie E-Mails aus einer Excel-Tabelle mit VBA-Skripten

So senden Sie E-Mails aus einer Excel-Tabelle mit VBA-Skripten

Um E-Mails aus Microsoft Excel zu versenden, sind nur wenige einfache Skripte erforderlich. Fügen Sie diese Funktionalität zu Ihren Tabellenkalkulationen hinzu und Sie können wirklich verbessern, wie viel Sie in Excel erreichen können.





Wir haben viele großartige Excel-Makros behandelt, die die gleichen Dinge wie VBA-Skripte erreichen können, jedoch ohne Programmierkenntnisse. Aber es gibt viele fortgeschrittene Dinge, die Sie nur mit VBA tun können, wie zum Beispiel das Erstellen eines Tabellenkalkulationsberichts mit all Ihren PC-Informationen.





Sehen Sie sich dieses Tutorial lieber als Video an? Wir geben dir Deckung!





Warum E-Mails aus Excel senden?

Es gibt viele Gründe, warum Sie eine E-Mail aus Microsoft Excel heraus senden möchten.

Vielleicht haben Sie Mitarbeiter, die wöchentlich Dokumente oder Tabellen aktualisieren, und Sie möchten per E-Mail benachrichtigt werden, wenn diese Aktualisierungen abgeschlossen sind. Oder Sie haben eine Tabelle mit Kontakten und möchten eine E-Mail an alle gleichzeitig senden.



Sie denken wahrscheinlich, dass die Erstellung eines Skripts für eine E-Mail-Übertragung aus Excel kompliziert sein wird. Das ist überhaupt nicht der Fall.

Die Technik in diesem Artikel verwendet eine Funktion, die seit langem in Excel VBA verfügbar ist. Kollaborationsdatenobjekte (CDO).





CDO ist eine Messaging-Komponente, die in Windows seit sehr frühen Generationen des Betriebssystems verwendet wird. Früher hieß es CDONTS und wurde dann mit dem Aufkommen von Windows 2000 und XP durch 'CDO für Windows 2000' ersetzt. Diese Komponente ist bereits in Ihrer VBA-Installation in Microsoft Word oder Excel enthalten und kann verwendet werden.

Die Verwendung der Komponente macht das Senden von E-Mails aus Windows-Produkten mit VBA extrem einfach. In diesem Beispiel verwenden Sie die CDO-Komponente in Excel, um eine E-Mail zu versenden, die die Ergebnisse aus einer bestimmten Excel-Zelle liefert.





Schritt 1: Erstellen Sie ein VBA-Makro

Der erste Schritt besteht darin, zur Registerkarte Excel-Entwickler zu wechseln.

Klicken Sie auf der Registerkarte Entwickler auf Einfügung im Feld Steuerelemente, und wählen Sie dann eine Befehlsschaltfläche aus.

Zeichnen Sie es in das Blatt ein und erstellen Sie dann ein neues Makro dafür, indem Sie auf klicken Makros im Entwickler-Menüband.

Wenn Sie auf klicken Schaffen Schaltfläche, wird der VBA-Editor geöffnet.

Fügen Sie die Referenz zur CDO-Bibliothek hinzu, indem Sie zu navigieren Werkzeuge > Verweise im Editor.

Scrollen Sie in der Liste nach unten, bis Sie gefunden haben Microsoft CDO für Windows 2000-Bibliothek . Markieren Sie das Kontrollkästchen und klicken Sie auf OK .

Wenn du klickst OK , notieren Sie sich den Namen der Funktion, in die Sie das Skript einfügen. Du wirst es später brauchen.

Schritt 2: Richten Sie die CDO-Felder „Von“ und „An“ ein

Dazu müssen Sie zunächst die Mail-Objekte anlegen und alle Felder einrichten, die für den Versand der E-Mail notwendig sind.

Beachten Sie, dass viele der Felder zwar optional sind, die Von und Zu Felder sind notwendig.

was ist crc sha bei rechtem klick
Dim CDO_Mail As Object
Dim CDO_Config As Object
Dim SMTP_Config As Variant
Dim strSubject As String
Dim strFrom As String
Dim strTo As String
Dim strCc As String
Dim strBcc As String
Dim strBody As String
strSubject = 'Results from Excel Spreadsheet'
strFrom = 'rdube02@gmail.com'
strTo = 'rdube02@gmail.com'
strCc = ''
strBcc = ''
strBody = 'The total results for this quarter are: ' & Str(Sheet1.Cells(2, 1))

Das Coole daran ist, dass Sie jede beliebige Zeichenfolge erstellen können, um eine vollständige E-Mail-Nachricht anzupassen und diese dem zu zuweisen strBody Variable.

Füge die Komponenten der Nachricht zusammen, indem du die & string, um Daten aus einem der Microsoft Excel-Blätter direkt in die E-Mail-Nachricht einzufügen, wie oben gezeigt.

Schritt 3: Konfigurieren Sie CDO für die Verwendung eines externen SMTP

Im nächsten Codeabschnitt konfigurieren Sie CDO so, dass ein externer SMTP-Server zum Senden der E-Mail verwendet wird.

Dieses Beispiel ist eine Einrichtung ohne SSL über Gmail. CDO ist SSL-fähig, aber das würde den Rahmen dieses Artikels sprengen. Wenn Sie SSL verwenden müssen, ist dies erweiterter Code in Github kann helfen.

Set CDO_Mail = CreateObject('CDO.Message')
On Error GoTo Error_Handling
Set CDO_Config = CreateObject('CDO.Configuration')
CDO_Config.Load -1
Set SMTP_Config = CDO_Config.Fields
With SMTP_Config
.Item('http://schemas.microsoft.com/cdo/configuration/sendusing') = 2
.Item('http://schemas.microsoft.com/cdo/configuration/smtpserver') = 'smtp.gmail.com'
.Item('http://schemas.microsoft.com/cdo/configuration/smtpauthenticate') = 1
.Item('http://schemas.microsoft.com/cdo/configuration/sendusername') = 'email@website.com'
.Item('http://schemas.microsoft.com/cdo/configuration/sendpassword') = 'password'
.Item('http://schemas.microsoft.com/cdo/configuration/smtpserverport') = 25
.Item('http://schemas.microsoft.com/cdo/configuration/smtpusessl') = True
.Update
End With
With CDO_Mail
Set .Configuration = CDO_Config
End With

Schritt 4: Beenden Sie das CDO-Setup

Nachdem Sie nun die Verbindung zum SMTP-Server für den E-Mail-Versand konfiguriert haben, müssen Sie nur noch die entsprechenden Felder für die CDO_Mail-Objekt , und geben Sie die Senden Befehl.

So machen Sie das:

CDO_Mail.Subject = strSubject
CDO_Mail.From = strFrom
CDO_Mail.To = strTo
CDO_Mail.TextBody = strBody
CDO_Mail.CC = strCc
CDO_Mail.BCC = strBcc
CDO_Mail.Send
Error_Handling:
If Err.Description '' Then MsgBox Err.Description

Es werden keine Popup-Fenster oder Sicherheitswarnungen angezeigt, was passieren kann, wenn Sie auf das Outlook-Mail-Objekt zurückgreifen.

CDO stellt einfach die E-Mail zusammen und verwendet Ihre SMTP-Serververbindungsdetails, um die Nachricht abzufeuern. Es ist der einfachste Weg, E-Mails in Microsoft Word- oder Excel-VBA-Skripte einzubinden.

Um Ihre Befehlsschaltfläche mit diesem Skript zu verbinden, gehen Sie in den Code-Editor und klicken Sie auf Blatt1 um den VBA-Code für dieses Arbeitsblatt anzuzeigen.

Geben Sie den Namen der Funktion ein, in die Sie das Skript oben eingefügt haben.

SMS automatisch an E-Mail weiterleiten

So sah die Nachricht aus, die ich in meinem Posteingang erhalten habe:

Notiz : Wenn Sie einen Fehler erhalten, der lautet Der Transport konnte keine Verbindung zum Server herstellen , stellen Sie sicher, dass Sie den korrekten Benutzernamen, das Passwort, den SMTP-Server und die Portnummer in den unten aufgeführten Codezeilen eingegeben haben Mit SMTP_Config .

Gehen Sie weiter und automatisieren Sie den gesamten Prozess

Es ist schön und gut, auf Knopfdruck E-Mails aus Excel versenden zu können. Möglicherweise möchten Sie diese Funktionalität jedoch regelmäßig nutzen. In diesem Fall ist es sinnvoll, den Prozess zu automatisieren .

Dazu müssen Sie das Makro ändern. Gehen Sie zum Visual Basic-Editor und kopieren Sie den gesamten Code, den wir zusammengestellt haben, und fügen Sie ihn ein.

Wählen Sie als Nächstes DiesesArbeitsbuch von dem Projekt Hierarchie.

Wählen Sie aus den beiden Dropdown-Feldern oben im Codefenster die Option Arbeitsmappe und wählen Sie Offen aus der Dropdown-Liste Methoden.

Fügen Sie das obige E-Mail-Skript in ein Private Unterarbeitsmappe_Open() .

Dadurch wird das Makro ausgeführt, wenn Sie die Excel-Datei öffnen.

Als nächstes öffne dich Aufgabenplaner .

Sie werden dieses Tool verwenden, um Windows aufzufordern, die Tabelle in regelmäßigen Abständen automatisch zu öffnen, woraufhin Ihr Makro initiiert wird und die E-Mail sendet.

Auswählen Einfache Aufgabe erstellen... von dem Handlung Menü und arbeiten Sie sich durch den Assistenten, bis Sie das Handlung Bildschirm.

Auswählen Starten Sie ein Programm und klicke Nächste .

Verwenden Sie die Durchsuche , um den Speicherort von Microsoft Excel auf Ihrem Computer zu finden, oder kopieren Sie den Pfad und fügen Sie ihn in das Programm/Skript Gebiet.

Geben Sie dann den Pfad zu Ihrem Microsoft Excel-Dokument in das Argumente hinzufügen Gebiet.

Schließen Sie den Assistenten ab, und Ihre Planung ist abgeschlossen.

Es lohnt sich, einen Test durchzuführen, indem Sie die Aktion für einige Minuten in der Zukunft planen und dann die Aufgabe ändern, sobald Sie sich vergewissern können, dass sie funktioniert.

Notiz : Möglicherweise müssen Sie Ihre Trust Center-Einstellungen anpassen, um sicherzustellen, dass das Makro ordnungsgemäß ausgeführt wird.

Öffnen Sie dazu die Tabelle und navigieren Sie zu Datei > Optionen > Trustcenter .

Von hier aus klicke Trust Center-Einstellungen , und stellen Sie auf dem nächsten Bildschirm das Radio-Wahlrad auf Nie Informationen über blockierte Inhalte anzeigen .

Lassen Sie Microsoft Excel für sich arbeiten

Microsoft Excel ist ein unglaublich leistungsstarkes Tool, aber zu lernen, wie man das Beste daraus macht, kann ein wenig einschüchternd sein. Wenn Sie die Software wirklich beherrschen wollen, müssen Sie es sein komfortabel mit VBA , und das ist keine leichte Aufgabe.

wie viele Gigs auf einer Terabyte-Festplatte?

Die Ergebnisse sprechen jedoch für sich. Mit ein wenig VBA-Erfahrung werden Sie schon bald in der Lage sein, Microsoft Excel grundlegende Aufgaben automatisch ausführen zu lassen, sodass Sie mehr Zeit haben, sich auf dringendere Angelegenheiten zu konzentrieren.

Es braucht Zeit, um Fachwissen mit VBA aufzubauen, aber Sie werden bald die Früchte Ihrer Arbeit sehen, wenn Sie dabei bleiben können.

Ein großartiger Ausgangspunkt ist unser maßgebliches Tutorial zur Verwendung von VBA in Excel . Sobald Sie damit fertig sind, wird sich dieses einfache Skript zum Versenden von E-Mails aus Excel wie ein Kinderspiel anfühlen.

Teilen Teilen Tweet Email Canon vs. Nikon: Welche Kameramarke ist besser?

Canon und Nikon sind die beiden größten Namen in der Kamerabranche. Aber welche Marke bietet die bessere Auswahl an Kameras und Objektiven?

Weiter lesen
Verwandte Themen
  • Produktivität
  • Programmierung
  • E-Mail-Tipps
  • Programmierung
  • Visual Basic-Programmierung
  • Microsoft Excel
  • Tipps zu Microsoft Office
Über den Autor Ryan Dube(942 veröffentlichte Artikel)

Ryan hat einen BSc-Abschluss in Elektrotechnik. Er hat 13 Jahre in der Automatisierungstechnik, 5 Jahre in der IT gearbeitet und ist jetzt Apps Engineer. Als ehemaliger Chefredakteur von MakeUseOf hat er auf nationalen Konferenzen zur Datenvisualisierung gesprochen und wurde im nationalen Fernsehen und Radio vorgestellt.

Mehr von Ryan Dube

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren