Wer kann mir bitte helfen und sagen, wie ich aus einer Excel-Tabelle einen Serien-Brief/eine E-Mail erstellen kann? Ich bitte um idiotensichere Erklärungen, gern auch Links.
Voraussetzung Outlook-Mail-Client
In Excel-Arbeitsmappe einen benannten Bereich mit Empfänger/Email-Adresse erstellen.
Den nachfolgenden Code im VBE einfügen, ggf. anpassen und ausführen(F5):
'Serienmails über Outlook
Option Explicit
Private Sub SendMail()
Dim strTo As String
Dim strSubject As String
Dim strBody As String
Dim tliste(), i As Byte
'oralist ist ein benannter Bereich in Excel mit Spalte 8 Empfänger-Emailadresse
tliste = Range("oralist").Value
For i = 1 To 8
'populate variables
strTo = tliste(i, 2)
'Betreffzeile definieren
strSubject = "Seminar Oracle PL/SQL - PC-College Berlin"
strBody = "Sehr geehrte Teilnehmer," & vbLf & vbLf & _
"die Virtuelle Maschinen sind wieder voll einsatzfähig. " & vbLf & _
"Starten Sie das Programm VirtualBox und dort die VM Oracle 19c" & vbLf & vbLf & _
"Das Passwort für Oracle ist: oratraining" & vbLf & _
"Alles weitere morgen um 9 Uhr" & vbLf & vbLf & _
"Gruß Robert Roller"
'call the function to send the email
If SendActiveWorkbook(strTo, strSubject, , strBody) = True Then
Debug.Print i & " Erfolg"
'MsgBox "Email creation Success"
Else
'MsgBox "Email creation failed!"
Debug.Print i & " Misserfolg"
End If
Next
End Sub
Private Function SendActiveWorkbook(strTo As String, strSubject As String, Optional strCC As String, Optional strBody As String, Optional ByVal fname As String) As Boolean
On Error Resume Next
Dim appOutlook As Object
Dim mItem As Object
'create a new instance of Outlook
Set appOutlook = CreateObject("Outlook.Application")
Set mItem = appOutlook.CreateItem(0)
With mItem
.To = strTo
.CC = ""
.Subject = strSubject
.Body = strBody
' .Attachments.Add fname 'ActiveWorkbook.FullName
'use send to send immediately or display to show on the screen
.Send
'.Display 'or .Send
End With
'clean up objects
Set mItem = Nothing
Set appOutlook = Nothing
End Function