web-dev-qa-db-fra.com

Intégrer une image dans le corps du courrier Outlook Excel vba

J'essaie d'incorporer une plage d'une feuille de calcul en tant qu'image dans le corps du courrier Outlook. Il enregistre correctement l'image, mais je ne vois qu'une image vierge dans le corps du courrier Outlook. Qu'est-ce que je fais mal ici?

Sub View_Email()

    tName = Trim(MAIN.Range("tEmail"))

    If Not tName Like "*@*.*" Then MsgBox "Invalid Email address": Exit Sub

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    'File path/name of the gif file
    Fname = ThisWorkbook.Path & "\Claims.jpg"

    Set oCht = Charts.Add

    STAT.Range("A3:G26").CopyPicture xlScreen, xlBitmap
    With oCht
        .Paste
        .Export Filename:=Fname, Filtername:="JPG"
        '.Delete
    End With

    On Error Resume Next
    With OutMail
        .To = tName
        .CC = ""
        .BCC = ""
        .Subject = STAT.Range("C1").Value
        .HTMLBody = "<html><p>Summary of Claim Status.</p>" & _
                    "<img src=" & Fname & "' height=520 width=750>"
        .display
        '.Send   'or use .Display
    End With
    On Error GoTo 0

    'Delete the gif file
    'Kill Fname

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
8
Rohan

Vous devez ajouter l'image et la cacher. La position 0 l'ajoutera et le masquera.

.Attachments.Add Fname, 1, 0

Le 1 est la constante Outlook olByValue

Une fois que vous avez ajouté l'image, vous devez utiliser "cid:FILENAME.jpg" comme indiqué ci-dessous.

Essaye ça

With OutMail
    .To = tName
    .CC = ""
    .BCC = ""
    .Subject = STAT.Range("C1").Value
    .Attachments.Add Fname, 1, 0
    .HTMLBody = "<html><p>Summary of Claim Status.</p>" & _
                "<img src=""cid:Claims.jpg""height=520 width=750>"
    .Display
End With

Capture d'écran

enter image description here

11
Siddharth Rout