2017-07-02 127 views
3

Outlookのメール本文にワークシートの範囲を画像として埋め込みしようとしています。それは画像を正しく保存していますが、Outlookのメール本文には空白の画像しか表示されません。私はここで間違って何をしていますか?Outlookのメール本文に画像を埋め込む

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 
+0

デバッグにコードを試してみて、 'Fname'の値が何であるかをチェックし、手動でファイルの存在を確認してください。ファイルを開いて、チャートがエクスポートされているかどうかを確認してください –

+0

@SiddharthRoutはい私はfnameを確認して、両方がうまくいくように見えますが、Outlook本体には空白の画像が表示されます – newguy

+0

オハイオ州私は理由を知っています... 1つの瞬間に回答を投稿します –

答えて

3

イメージを追加して非表示にする必要があります。ポジション0が追加され、非表示になります。

.Attachments.Add Fname, 1, 0 

1は、あなたがイメージを追加すると、あなたが以下に示すように"cid:FILENAME.jpg"使用する必要が展望定数olByValue

です。

この

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 

スクリーンショット

enter image description here

+1

ありがとうそれは完全に動作します。 – newguy

関連する問題