Zum Hauptinhalt springen

Wie kann man einen Zellenbereich als Bild in den Nachrichtentext in Excel einfügen?

Author: Xiaoyang Last Modified: 2025-08-06

Wenn Sie einen Zellenbereich kopieren und als Bild in den Nachrichtentext einfügen müssen, während Sie eine E-Mail aus Excel senden, wie könnten Sie diese Aufgabe bewältigen?

Einfügen eines Zellenbereichs als Bild in den E-Mail-Text mit VBA-Code in Excel


Einfügen eines Zellenbereichs als Bild in den E-Mail-Text mit VBA-Code in Excel

Möglicherweise gibt es keine andere gute Methode für Sie, um diese Aufgabe zu lösen. Ein VBA-Code in diesem Artikel kann Ihnen helfen. Gehen Sie bitte wie folgt vor:

1. Aktivieren Sie das Arbeitsblatt, von dem Sie die Zellen als Bild kopieren und einfügen möchten, und halten Sie die ALT + F11-Tasten gedrückt, um das Microsoft Visual Basic for Applications-Fenster zu öffnen.

2. Klicken Sie auf Einfügen > Modul und fügen Sie den folgenden Code im Modulfenster ein.

VBA-Code: Einfügen eines Zellenbereichs als Bild in den E-Mail-Text:

Sub sendMail()
    Dim TempFilePath As String
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xHTMLBody As String
    Dim xRg As Range
    On Error Resume Next
    Set xRg = Application.InputBox("Please select the data range:", "KuTools for Excel", Selection.Address, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    With Application
        .Calculation = xlManual
        .ScreenUpdating = False
        .EnableEvents = False
    End With
    Set xOutApp = CreateObject("outlook.application")
    Set xOutMail = xOutApp.CreateItem(olMailItem)
    Call createJpg(ActiveSheet.Name, xRg.Address, "DashboardFile")
    TempFilePath = Environ$("temp") & "\"
    xHTMLBody = "<span LANG=EN>" _
            & "<p class=style2><span LANG=EN><font FACE=Calibri SIZE=3>" _
            & "Hello, this is the data range that you want:<br> " _
            & "<br>" _
            & "<img src='//cdn.extendoffice.com/cid:DashboardFile.jpg'>" _
            & "<br>Best Regards!</font></span>"
    With xOutMail
        .Subject = ""
        .HTMLBody = xHTMLBody
      .Attachments.Add TempFilePath & "DashboardFile.jpg", olByValue
        .To = " "
        .Cc = " "
        .Display
    End With
End Sub
Sub createJpg(SheetName As String, xRgAddrss As String, nameFile As String)
    Dim xRgPic As Range
    Dim xShape As Shape
    ThisWorkbook.Activate
    Worksheets(SheetName).Activate
    Set xRgPic = ThisWorkbook.Worksheets(SheetName).Range(xRgAddrss)
    xRgPic.CopyPicture
    With ThisWorkbook.Worksheets(SheetName).ChartObjects.Add(xRgPic.Left, xRgPic.Top, xRgPic.Width, xRgPic.Height)
        .Activate
        For Each xShape In ActiveSheet.Shapes
            xShape.Line.Visible = msoFalse
        Next
        .Chart.Paste
        .Chart.Export Environ$("temp") & "\" & nameFile & ".jpg", "JPG"
    End With
   Worksheets(SheetName).ChartObjects(Worksheets(SheetName).ChartObjects.Count).Delete
Set xRgPic = Nothing
End Sub

Hinweis: Im obigen Code können Sie den Textinhalt und die E-Mail-Adresse nach Bedarf ändern.

3. Nachdem Sie den Code eingefügt haben, drücken Sie die F5-Taste, um diesen Code auszuführen. Es wird ein Dialogfeld angezeigt, das Sie daran erinnert, den Datenbereich auszuwählen, den Sie als Bild in den E-Mail-Text einfügen möchten. Siehe Screenshot:

a screenshot of selecting the range you want to paste in the email body

4. Klicken Sie dann auf die Schaltfläche OK, und ein Nachrichtenfenster wird angezeigt. Der ausgewählte Datenbereich wurde als Bild in den Text eingefügt. Siehe Screenshot:

a screenshot of the selected range in the body of the email in the form of images

Hinweis: Im Nachrichtenfenster können Sie auch den Textinhalt und die E-Mail-Adressen in den Feldern An und Cc nach Bedarf ändern.

5. Klicken Sie abschließend auf die Schaltfläche Senden, um diese E-Mail zu versenden.


Hinweis: Wenn Sie mehrere Bereiche aus verschiedenen Arbeitsblättern einfügen müssen, kann der folgende VBA-Code Ihnen helfen:

Wählen Sie zunächst die mehreren Bereiche aus, die Sie als Bilder in den E-Mail-Text einfügen möchten, und wenden Sie dann den folgenden Code an:

VBA-Code: Einfügen mehrerer Zellenbereiche als Bild in den E-Mail-Text:

Sub sendMail()
    Dim TempFilePath As String
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xHTMLBody As String
    Dim xRg As Range
    Dim xSheet As Worksheet
    Dim xAcSheet As Worksheet
    Dim xFileName As String
    Dim xSrc As String
    On Error Resume Next
    TempFilePath = Environ$("temp") & "\RangePic\"
    If Len(VBA.Dir(TempFilePath, vbDirectory)) = False Then
      VBA.MkDir TempFilePath
    End If
    Set xAcSheet = Application.ActiveSheet
    For Each xSheet In Application.Worksheets
        xSheet.Activate
        Set xRg = xSheet.Application.Selection
        If xRg.Cells.Count > 1 Then
            Call createJpg(xSheet.Name, xRg.Address, "DashboardFile" & VBA.Trim(VBA.Str(xSheet.Index)))
        End If
    Next
    xAcSheet.Activate
    With Application
        .Calculation = xlManual
        .ScreenUpdating = False
        .EnableEvents = False
    End With
    Set xOutApp = CreateObject("outlook.application")
    Set xOutMail = xOutApp.CreateItem(olMailItem)
    xSrc = ""
    xFileName = Dir(TempFilePath & "*.*")
    Do While xFileName <> ""
        xSrc = xSrc + VBA.vbCrLf + "<img src='cid:" + xFileName + "'><br>"
        xFileName = Dir
        If xFileName = "" Then Exit Do
    Loop
    xHTMLBody = "<span LANG=EN>" _
                & "<p class=style2><span LANG=EN><font FACE=Calibri SIZE=3>" _
                & "Hello, this is the data range that you want:<br> " _
                & "<br>" _
                & xSrc _
                & "<br>Best Regards!</font></span>"
    With xOutMail
        .Subject = ""
        .HTMLBody = xHTMLBody
        xFileName = Dir(TempFilePath & "*.*")
        Do While xFileName <> ""
            .Attachments.Add TempFilePath & xFileName, olByValue
            xFileName = Dir
        If xFileName = "" Then Exit Do
        Loop
        .To = " "
        .Cc = " "
       .Display
    End With
    If VBA.Dir(TempFilePath & "*.*") <> "" Then
        VBA.Kill TempFilePath & "*.*"
    End If
End Sub
Sub createJpg(SheetName As String, xRgAddrss As String, nameFile As String)
    Dim xRgPic As Range
    ThisWorkbook.Activate
    Worksheets(SheetName).Activate
    Set xRgPic = ThisWorkbook.Worksheets(SheetName).Range(xRgAddrss)
    xRgPic.CopyPicture
    With ThisWorkbook.Worksheets(SheetName).ChartObjects.Add(xRgPic.Left, xRgPic.Top, xRgPic.Width, xRgPic.Height)
        .Activate
        .Chart.Paste
        .Chart.Export Environ$("temp") & "\RangePic\" & nameFile & ".jpg", "JPG"
    End With
    Worksheets(SheetName).ChartObjects(Worksheets(SheetName).ChartObjects.Count).Delete
Set xRgPic = Nothing
End Sub

Die besten Office-Produktivitätstools

🤖 Kutools AI Aide: Revolutionieren Sie die Datenanalyse basierend auf: Intelligente Ausführung |  Code generieren  |  Benutzerdefinierte Formeln erstellen |  Daten analysieren und Diagramme generieren  |  Erweiterte Funktionen aufrufen
Beliebte Funktionen: Doppelte suchen, hervorheben oder markieren | Leere Zeilen löschen | Spalten oder Zellen ohne Datenverlust zusammenführen | Runden
Erweiterte SVERWEIS: SVERWEIS mit mehreren Kriterien | SVERWEIS für mehrere Werte | Mehrblatt-SVERWEIS | Fuzzy Match
Erweiterte Dropdown-Liste: Dropdown-Liste schnell erstellen | Abhängige Dropdown-Liste | Mehrfachauswahl-Dropdown-Liste
Spalten-Manager: Eine bestimmte Anzahl an Spalten hinzufügen | Spalten verschieben | Sichtbarkeit von ausgeblendeten Spalten umschalten | Bereiche & Spalten vergleichen
Hervorgehobene Funktionen: Gitterfokus | Entwurfsansicht | Erweiterte Formelleiste | Arbeitsmappen- & Blattmanager | AutoText-Bibliothek | Datumsauswahl | Daten zusammenführen | Zellen verschlüsseln/entschlüsseln | E-Mail senden nach Liste | Super Filter | Spezialfilter (Filtern nach Fett/Kursiv/Durchgestrichen...)…
Top15 Toolsets:12 Text-Tools (Text hinzufügen, Bestimmte Zeichen löschen, ...) | 50+ Diagramm typen (Gantt-Diagramm, ...) | 40+ praktische Formeln (Alter basierend auf dem Geburtsdatum berechnen, ...) | 19 Einfüge-Tools (QR-Code einfügen, Bild aus Pfad einfügen, ...) | 12 Konvertierungs-Tools (In Wörter umwandeln, Währungsumrechnung, ...) | 7 Konsolidieren & Aufteilen-Tools (Erweiterte Zeilen zusammenführen, Zellen aufteilen, ...) | ... und mehr
Nutzen Sie Kutools in Ihrer bevorzugten Sprache – unterstützt Englisch, Spanisch, Deutsch, Französisch, Chinesisch und über40 weitere Sprachen!

Steigern Sie Ihre Excel-Kompetenz mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen, um Ihre Produktivität zu steigern und Zeit zu sparen.Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...


Office Tab bringt die Reiter-Oberfläche in Office und macht Ihre Arbeit so viel einfacher

  • Aktivieren Sie die Bearbeitung und das Lesen in Reitern in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Reitern desselben Fensters, anstatt in neuen Fenstern.
  • Steigert Ihre Produktivität um50 % und reduziert täglich Hunderte von Mausklicks!