Last updated on
Excel VBAでメールに画像を挿入してOutLookで送信する方法
Excel VBAでメールに画像を挿入してOutLookで送信するコードを書きました。
HTMLメールの本文にQRコードなどを挿入したいときに使用できます。
画像ファイルをBase64でエンコードして、HTMLに埋め込むことで実現できます。
以下は、画像ファイルのパスを指定して読み込んでメールの本文にHTMLタグをセットして、下書きに保存するコードです。
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