Einzelnes Tabellenblatt per E-Mail versenden

Dieses Makro versendet das aktive Tabellenblatt per E-Mail über Outlook. Wenn der VBA-Code ausgeführt wird, wird automatisch das aktive Tabellenblatt an eine neue E-Mail angefügt und die E-Mail über Outlook angezeigt.

Die E-Mail wird nicht sofort versendet, damit Sie die E-Mail noch ergänzen können. So müssen Sie beispielsweise noch die notwendigen E-Mail-Adressen sowie einen Betreff und einen E-Mail Text eingeben. 

In dem Beispiel wird bereits eine Signatur in die E-Mail eingefügt. Den Text können Sie natürlich beliebig verändern. Der VBA-Code ist auch dafür vorgesehen die Empfänger-E-Mail Adresse direkt vorzugeben. Tragen Sie dazu in der Zeile .To und .CC einfach die gewünschten E-Mail Adressen ein. Wenn Sie möchten können Sie dem Parameter .Subject auch eine Betreffzeile vorgeben.

Sub einzelnes_Blatt_senden()
'** Das aktive Tabellenblatt wird über Outlook versendet
'** Dimensionierung der Variablen
Dim strBlatt As String
Dim strDatei As String
Dim strPfad As String
Dim outObj As Object
Dim Mail As Object
Dim strBodyText As String
Set outObj = CreateObject("Outlook.Application")
Set Mail = outObj.CreateItem(0)
'** Pfad für temporäre Zwischenspeicherung angeben
strPfad = "C:\Temp" 'entsprechend anpassen
'** Aktuelles aktives Blatt in neue Arbeitsmappe kopieren
strBlatt = ActiveSheet.Name
'** Gewähltes Tabellenblatt kopieren
Sheets(strBlatt).Copy
'** Blatt temporär in vorgegebenes Verzeichnis abspeichern
ActiveWorkbook.SaveAs strPfad & "\" & ActiveSheet.Name

'** Pfad und Dateiname der neuen Datei zwischenspeichern
strDatei = ActiveWorkbook.FullName

'** Body-Text festlegen
strBodyText = _
"Mit freundlichen Grüßen" & Chr(13) & Chr(13) & _
"Alois Eckl" & Chr(13) & _
"Excel-Inside Solutions, Grabbestr. 25, 90427 Nürnberg" & Chr(13) & _
"Auftragsprogrammierung - Anwendungsentwicklung" & Chr(13) & _


'** Mail erzeugen
With Mail
'.To = ""
'.CC = ""
.Subject = "" 'Betreff
.BodyFormat = 2 '2 = HTML, 1 = Text
.Attachments.Add strDatei 'Anhang
.Body = strBodyText 'Bodytext / Signatur
End With

'** Erzeugte Datei schließen
Workbooks(Dir(strDatei)).Close

'** Erzeugte Datei wieder löschen
Kill (strDatei)

'** E-Mail anzeigen
Mail.Display
End Sub

Damit das Programm funktioniert muss der Pfad für die temporäre Zwischenspeicherung des E-Mail Anhangs  in der Variable strPfad definiert werden. Hier können Sie ein beliebiges Verzeichnis wählen (mit Schreibrechten), da die gespeicherte Datei nach dem Senden gleich wieder gelöscht wird.