Excel VBAでメールに画像を挿入してOutLookで送信するコードを書きました。
HTMLメールの本文にQRコードなどを挿入したいときに使用できます。
画像ファイルをBase64でエンコードして、HTMLに埋め込むことで実現できます。
以下は、画像ファイルのパスを指定して読み込んでメールの本文にHTMLタグをセットして、下書きに保存するコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
Dim objOutlook As Object Set objOutlook = CreateObject("Outlook.Application") Set objMail = objOutlook.CreateItem(0) With objMail Set .SendUsingAccount = objOutlook.Session.Accounts.Item("[送信元メールアドレス]") .Subject = "[メールの件名]" '画像ファイルをBase64でエンコードする Dim objBase64 As Object Dim strBase64 As String Dim sImageFilePath As String sImageFilePath = "[画像ファイルのパス]" Dim sImageTag As String Set objBase64 = CreateObject("MSXML2.DOMDocument").createElement("base64") With CreateObject("ADODB.Stream") .Type = 1 .Open .LoadFromFile sImageFilePath objBase64.DataType = "bin.base64" objBase64.nodeTypedValue = .Read(-1) strBase64 = objBase64.Text .Close End With 'これが画像ファイルのHTMLタグになります sImageTag = "<img src=""data:image/jpeg;base64," & strBase64 & """ />""" '今回は画像だけをメールの本文としました .HTMLBody = sImageTag .To = "[送信先メールアドレス]" .Close (0) '下書きに保存する 送信する場合は、.Send End With |