Ich möchte gerne die Excel-Zwischenablage per VBA in das Outlook Textfeld einfügen und versenden.
Hat mir jemand einen Codeansatz?
Besten Dank für einen Tip
Gruss
TOM
Sub Excel_Serienmail_via_Outlook_Senden()
Dim OutApp As Object, Mail As Object
Dim i As Integer, rngBereich As Range
Dim Nachricht
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
Set rngBereich = Range("A4:H5")
rngBereich.Copy
With Nachricht
.To = Cells(2, 1) 'Adresse
.Subject = Cells(2, 3) 'Betreffzeile
.Body = rngBereich.PasteSpecial(xlAll)
'Cells(2, 4) & vbCr & vbCr & strBereich _
'& vbCr & vbCr & Cells(2, 5) 'Sendetext
.Display
SendKeys "%s", True
'.Send
End With
'Variablen zurücksetzen sonst geht es nicht
Set OutApp = Nothing 'CreateObject("Outlook.Application")
Set Nachricht = Nothing 'OutApp.CreateItem(0)
End Sub
Sub Excel_Serienmail_via_Outlook_Senden()
Dim OutApp As Object, Mail As Object
Dim i As Integer, rngBereich As Range
Dim Nachricht
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
Set rngBereich = Range("A4:H5")
rngBereich.Copy
With Nachricht
.To = Cells(2, 1) 'Adresse
.Subject = Cells(2, 3) 'Betreffzeile
.Body = rngBereich.PasteSpecial(xlAll)
'Cells(2, 4) & vbCr & vbCr & strBereich _
'& vbCr & vbCr & Cells(2, 5) 'Sendetext
.Display
SendKeys "%s", True
'.Send
End With
'Variablen zurücksetzen sonst geht es nicht
Set OutApp = Nothing 'CreateObject("Outlook.Application")
Set Nachricht = Nothing 'OutApp.CreateItem(0)
End Sub
Um die Excel-Zwischenablage per VBA in das Outlook Textfeld einzufügen, kannst Du folgenden Code verwenden:
Sub Send_Message_via_Clipboard()
Dim myOutApp As Object, myMessage As Object
Dim myClpObj As DataObject
' Verweis auf "Microsoft Forms 2.0 Object Library" aktivieren
Set myClpObj = New DataObject
Set myOutApp = CreateObject("Outlook.Application")
Set myMessage = myOutApp.CreateItem(0)
With myMessage
.To = "irgendwer@irgendein-provider.de"
.Subject = "Betreffzeile Header"
' Zwischenablage wird eingefügt
myClpObj.GetFromClipboard
.Body = myClpObj.GetText(1)
' Hier wird die Mail angezeigt
.Display
' .Send für sofortiges Senden
End With
Set myOutApp = Nothing
Set myMessage = Nothing
End Sub
Stelle sicher, dass Du die Daten in Excel zuerst in die Zwischenablage kopierst, bevor Du das Skript ausführst.
Problem: Der Code gibt einen Fehler aus, wenn er die Zwischenablage abruft. Lösung: Überprüfe, ob der Verweis auf "Microsoft Forms 2.0 Object Library" im VBA-Editor aktiviert ist.
Problem: Der Body des E-Mails bleibt leer. Lösung: Stelle sicher, dass Du korrekt in Excel einen Bereich kopiert hast, bevor Du das Skript ausführst.
Eine alternative Methode ist, die Excel-Daten direkt zu importieren, ohne die Zwischenablage zu verwenden. Du kannst die Daten aus einem bestimmten Bereich direkt in den Body der E-Mail einfügen:
Sub Send_OriginalRange_from_Excel()
Range("B15:I25").Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = "Das ist der Einleitungstext." & vbCrLf & "mit einer zweiten Zeile"
.Item.To = "irgendwer@irgendwo.de"
.Item.Subject = "Die aktuellen Daten"
.Item.Send
End With
End Sub
Hier sind einige praktische Beispiele zur Verwendung der Excel-Zwischenablage in Outlook:
E-Mail mit formatierten Excel-Daten: Du kannst Excel-Tabellen mit Farben und Formatierungen direkt in Outlook einfügen, indem Du die Daten zuerst kopierst und dann mit dem VBA-Skript in Outlook einfügst.
E-Mail-Benachrichtigungen automatisieren: Verwende VBA, um regelmäßig Excel-Daten in E-Mails zu versenden, z.B. wöchentliche Berichte oder Benachrichtigungen.
Nutze SendKeys
, um die E-Mail automatisch zu senden, anstatt sie nur anzuzeigen. Sei jedoch vorsichtig, da dies manchmal unerwartetes Verhalten verursachen kann.
Experimentiere mit dem HTMLBody
anstelle von Body
, um formatierte E-Mails zu erstellen, die z.B. Tabellen enthalten.
1. Wie kann ich Excel-Daten aus der Zwischenablage importieren?
Du kannst die Daten in Excel kopieren und dann ein VBA-Skript verwenden, um die Zwischenablage in Outlook einzufügen.
2. Ist es möglich, die Zwischenablage direkt in Outlook zu verwenden?
Ja, Du kannst die Zwischenablage verwenden, um Daten per VBA in Outlook einzufügen, indem Du die DataObject
-Klasse nutzt.
3. Welche Excel-Version wird benötigt?
Die gezeigten Beispiele funktionieren unter Office XP und späteren Versionen. Stelle sicher, dass Du die entsprechenden Bibliotheken aktiviert hast.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen