Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formatierung einer Email per VBA ändern

Formatierung einer Email per VBA ändern
24.04.2009 13:45:58
H.
Hallo,
ich nutze folgenden Code, um eine Datei aus Excel per Outlook zu verschicken. Dabei füge ich als Text einen Zellbereich aus der Exceldatei ein. Dieser Text wird in der Email mit Schriftart Arial (Emailtyp HTML) aber ohne Übernahme der Formatierung aus der Excel-Datei übernommen. Wie kann ich den Text in der Email formatieren? Oder wie kann ích das Format der Email auf Nur-Text ändern, damit die Schriftart dann Courier ist?
Vielen Dank für Eure Hilfe!

Sub ASend_Test()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim AWS As String
AWS = ActiveWorkbook.FullName
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = "Name"
.Subject = "Betreff"
.attachments.Add AWS
.Body = Workbooks("Datei.xls").Sheets("Tabelle").Range("A85")
For i = 86 To 92
.Body = .Body & Workbooks("Datei.xls").Sheets("Tabelle").Range("A" & i)
Next
.Display
End With
Set OutApp = Nothing
Set Nachricht = Nothing
End Sub


Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatierung einer Email per VBA ändern
24.04.2009 14:32:51
mumpel
Hallo!
Da gibt es mehrere Möglichkeiten. 1. .htmlBody , siehe Excel und Word: Als Emailanhang. Oder auch mal die Forensuche bemühen. Dann könnte man es noch mit dem Richtext-Format versuchen. Aber probier erst mal die Tipps im Link.
Gruß, René
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Formatierung einer Email per VBA ändern


Schritt-für-Schritt-Anleitung

Um die Formatierung einer Email per VBA in Outlook zu ändern, kannst du den folgenden Schritten folgen:

  1. Öffne den Visual Basic-Editor in Excel (Alt + F11).

  2. Füge ein neues Modul hinzu (Einfügen > Modul).

  3. Kopiere den VBA-Code aus dem Forum und füge ihn in das Modul ein. Modifiziere den Code wie folgt, um die Email im HTML-Format zu versenden:

    Sub ASend_Test()
       Dim Nachricht As Object, OutApp As Object
       Set OutApp = CreateObject("Outlook.Application")
       Dim AWS As String
       AWS = ActiveWorkbook.FullName
       Set Nachricht = OutApp.CreateItem(0)
       With Nachricht
           .To = "Name"
           .Subject = "Betreff"
           .Attachments.Add AWS
           .HTMLBody = "<body>" & _
                        Workbooks("Datei.xls").Sheets("Tabelle").Range("A85").Value & "<br>"
           For i = 86 To 92
               .HTMLBody = .HTMLBody & Workbooks("Datei.xls").Sheets("Tabelle").Range("A" & i).Value & "<br>"
           Next
           .Display
       End With
       Set OutApp = Nothing
       Set Nachricht = Nothing
    End Sub
  4. Ändere die Email-Formatierung zu HTML, indem du .HTMLBody anstelle von .Body verwendest. So bleibt die Formatierung erhalten.


Häufige Fehler und Lösungen

  • Outlook-Formatierung geht verloren: Wenn die Formatierung in der Email verloren geht, stelle sicher, dass du .HTMLBody verwendest.
  • Email nur Text: Wenn du die Email im Nur-Text-Format haben möchtest, kannst du die Zeile .HTMLBody durch .Body ersetzen, aber bedenke, dass die Formatierung verloren geht.
  • Gelb hinterlegte Outlook-Mails: Überprüfe die Hintergrundfarbe in den Outlook-Einstellungen, falls du gelbe Hinterlegungen siehst.

Alternative Methoden

  • Rich-Text-Format: Eine andere Möglichkeit ist die Verwendung von Rich-Text-Format, aber dies ist in der Regel weniger stabil als HTML. Du kannst dazu die .RichText-Eigenschaft verwenden.
  • Email in HTML umwandeln Outlook: Wenn du eine bereits bestehende Email in HTML umwandeln möchtest, kannst du die MailItem-Eigenschaft .HTMLBody nutzen, um bestehenden Text zu formatieren.

Praktische Beispiele

Hier ein Beispiel, wie du die Formatierung einer Tabelle aus Excel in eine Outlook-Email überträgst:

Sub ASend_Table_Test()
    Dim OutApp As Object
    Dim Nachricht As Object
    Set OutApp = CreateObject("Outlook.Application")
    Set Nachricht = OutApp.CreateItem(0)

    With Nachricht
        .To = "empfaenger@beispiel.de"
        .Subject = "Tabelle als Email"
        .HTMLBody = "<h2>Tabelle:</h2><table border='1'>"

        Dim i As Integer
        Dim j As Integer
        For i = 1 To 5 ' Zeilen
            .HTMLBody = .HTMLBody & "<tr>"
            For j = 1 To 3 ' Spalten
                .HTMLBody = .HTMLBody & "<td>" & Workbooks("Datei.xls").Sheets("Tabelle").Cells(i, j).Value & "</td>"
            Next j
            .HTMLBody = .HTMLBody & "</tr>"
        Next i
        .HTMLBody = .HTMLBody & "</table>"
        .Display
    End With
End Sub

Tipps für Profis

  • Bildformat ändern: Wenn du Bilder in deine Emails einfügen möchtest, achte darauf, dass du den richtigen HTML-Code verwendest, um das Bild korrekt darzustellen.
  • Outlook-Einstellungen: Überprüfe die Einstellungen von Outlook, um sicherzustellen, dass HTML-Formatierungen nicht automatisch in nur Text umgewandelt werden.
  • Testen: Teste deine Emails immer, um sicherzustellen, dass die Formatierung sowohl in der Vorschau als auch im gesendeten Zustand korrekt aussieht.

FAQ: Häufige Fragen

1. Wie kann ich die Schriftart der Email ändern? Du kannst die Schriftart ändern, indem du CSS in den HTML-Body einfügst, z.B. <style>body {font-family: Arial;}</style>.

2. Was kann ich tun, wenn die Email im falschen Format gesendet wird? Stelle sicher, dass du die .HTMLBody-Eigenschaft verwendest und dass keine Einstellungen in Outlook die Formatierung beeinflussen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige