VBA E-Mails aus Excel über Gmail senden

In diesem Tutorial erfahren Sie, wie Sie mit VBA E-Mails aus Excel über Gmail senden.

Hinzufügen der Microsoft CDO-Referenz

Damit Excel E-Mails über Gmail versenden kann, müssen Sie zunächst die CDO-Referenzbibliothek zu Ihrem Excel-Projekt hinzufügen.

Klicken Sie im VBA-Editor auf Tools, Referenzen.

Suchen Sie nach der Microsoft CDO-Referenz, und klicken Sie auf OK.

Senden einer E-Mail über GMail

Um eine E-Mail aus Excel über Gmail zu senden, müssen Sie zunächst ein CDO-Objekt deklarieren (gMail als CDO.Message dimmen).

Zweitens müssen Sie die SSL-Authentifizierung für Ihre Nachricht in Ihrem Code konfigurieren. Dies bedeutet, dass Sie den SMTP-Server und die Port-Details einstellen müssen, damit Ihre E-Mail korrekt weitergeleitet wird, sowie Ihren Benutzernamen und Ihr Passwort einrichten.

Im folgenden Code-Snippet benötigen Sie dies am Anfang Ihrer Excel-Funktion. Sie benötigen einen E-Mail-Empfänger (strTo) und einen Betreff (strSubject), aber CC und Body der E-Mail können optionale Variablen sein.

12345678910111213141516171819202122232425262728 Funktion CreateEmail(strTo As String, strSubject As String, Optional strCC As String, Optional strBody als String)'ein CDO-Objekt erstellengMail als CDO.Message dimmengMail setzen = Neue CDO.Message'SSL-Authentifizierung aktivierengMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True'SMTP-Authentifizierung aktivieren=true (1)gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'SMTP-Server und Port-Details einstellengMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"gMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25gMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'Legen Sie hier Ihren Benutzernamen und Ihr Passwort für Ihr eigenes Gmail-Konto festgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*********"'Konfigurationsfelder aktualisierengMail.Configuration.Fields.Update

Danach können Sie Ihre E-Mail erstellen und die Funktion abschließen.

123456789 'Legen Sie die E-Mail-Eigenschaften und die zu sendende Datei festMit gMail .Subject = "Betreff hier schreiben".Von = "[email protected]".To = strTo.TextBody = strBodyEnde mit'um die Post zu sendengMail.SendenEndfunktion

Anschließend können Sie Ihre Funktion mit folgendem Code aufrufen

1234567 Sub SendEmail'Erstelle den Text der E-MailDim strText als ZeichenfolgestrText = "Guten Morgen. Hoffe es geht Ihnen gut - dies ist eine Test-E-Mail"'die Argumente der Funktion auffüllen - CC leer lassen, also ein Komma als Platzhalter setzenCreateEmail("[email protected]", "Test-E-Mail", , strText)End Sub

Senden einer Arbeitsmappe über GMail

Um eine Arbeitsmappe als Anhang über GMail zu versenden, können Sie mit einigen Ergänzungen eine ähnliche Funktion wie die obige erstellen.

Sie müssen Code hinzufügen, um die Arbeitsmappe auszuwählen, und dann müssen Sie die ausgewählte Datei an die E-Mail anhängen.

Wir werden das Microsoft Office verwenden DateiDialog Befehl, um die zu sendende Datei auszuwählen, und verwenden Sie dann die Anhang hinzufügen -Eigenschaft der E-Mail, um die Datei als Anhang hinzuzufügen.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 Funktion SendWorkbook(strTo As String, strSubject As String, Optional strCC As String, Optional strBody As String) As BooleanBei Fehler Goto eh:'ein CDO-Objekt erstellengMail als CDO.Message dimmengMail setzen = Neue CDO.Message'SSL-Authentifizierung aktivierengMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True'SMTP-Authentifizierung aktivieren=true (1)gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'SMTP-Server und Port-Details einstellengMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'Legen Sie hier Ihren Benutzernamen und Ihr Passwort für Ihr eigenes Gmail-Konto festgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*********"'Konfigurationsfelder aktualisierengMail.Configuration.Fields.Update'Wählen Sie die zu sendende Datei mit dem Microsoft-Dateidialogfeld ausDim strFileToSend As StringDim dlgFile As FileDialogDim strItem als VarianteDim nDlgResult As LongSet dlgFile = Application.FileDialog(msoFileDialogFilePicker)'nur nach Excel- und CSV-Dateien filterndlgFile.Filters.Add "Excel-Dateien", "*.csv; *.xls; *.xlsx; *.xlsm"nDlgResult = dlgFile.ShowWenn nDlgResult = -1 DannWenn dlgFile.SelectedItems.Count > 0 ThenFür jedes strItem in dlgFile.SelectedItemsstrFileToSend = strItemNächstes strItemEnde WennEnde Wenn'Legen Sie die E-Mail-Eigenschaften und die zu sendende Datei festMit gMail.Subject = "Betreff hier schreiben".Von = "[email protected]".To = strTo.TextBody = strBody'Ausgewählte Datei als Anhang hinzufügen.AddAttachment strFileToSendEnde mit'um die Post zu sendengMail.SendenSendWorkbook= TrueExit-Funktionäh:SendWorkbook = FalseEndfunktion

Wenn der Konfigurationsport 25 nicht funktioniert, erhalten Sie möglicherweise eine Fehlermeldung - „Der Transport konnte keine Verbindung zum Server herstellen“ Ändern Sie den Port auf 25 und versuchen Sie es erneut.

Die obige Funktion kann mit der folgenden Prozedur aufgerufen werden.

123456789101112131415 Sub SendMail()Dim strTo As StringDim strSubject als StringDim strBody als String'Variablen auffüllenstrTo = "[email protected]"strSubject = "Hier finden Sie die Finanzdatei im Anhang"strBody = "hier steht ein Text für den E-Mail-Text"'rufen Sie die Funktion auf, um die E-Mail zu sendenWenn SendWorkbook(strTo, strSubject, , strBody) = true dannMsgbox "Erfolgreiche E-Mail-Erstellung"AndersMsgbox "E-Mail-Erstellung fehlgeschlagen!"Beenden, wennEnd Sub

Sie werden aufgefordert, die Datei auszuwählen, die Sie senden möchten. Dieser Code ist auf Excel-Dateien beschränkt, da der Filter „*.csv; *.xls; *.xlsx; *.xlsm“ - Sie können diesen Code jedoch auch innerhalb von Word verwenden und Ihren Filter entsprechend anpassen.

Wählen Sie die Datei aus und klicken Sie auf Öffnen. Es kann eine Weile dauern, bis der Code ausgeführt wird. Wenn Ihre E-Mail erfolgreich gesendet wurde, erhalten Sie die folgende Meldung.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave