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.