使用Excel VBA在Outlook电子邮件中使用HTML设置背景图像

我想用Excel VBA创build一个关于澳大利亚儿童癌症研究所的电子邮件(CCIALittleGirl.jpg)。

然后,我希望有文本或文本框理想的白色粗体文本,我可以在运行时填充。

我可以添加一个图像到电子邮件(注释掉MyHTML部分这样做),但我似乎无法得到一个背景图像加载,我修改我在网上find的代码,但我的HTML技能是非常接近n。

我很确定这部分是我的问题:

<div style=""background-image: ""cid:CCIALittleGirl.jpg"" 

这里是我到目前为止的代码,MyHTML部分没有做我期望的。

 Private Sub EmailCopy() Dim oApp, oMail As Object, MyHTML As String Application.ScreenUpdating = False On Error Resume Next Set oApp = CreateObject("Outlook.Application") Set oMail = oApp.CreateItem(0) 'MyHTML = "<p>TempText</p>" 'MyHTML = MyHTML & "<img src=""cid:CCIALogo.jpg"">" MyHTML = "<div style=""background-image: ""cid:CCIALittleGirl.jpg&quot""; height: 390px; width: 900px; color: rgb(0, 0, 0); margin-top: 0px; padding-left: 35px; padding-top: 25px;"">" MyHTML = MyHTML & "my text appears here and on top of the image" MyHTML = MyHTML & "</div>" With oMail .To = "Email@Email.com.au" .Subject = "TEST" .Attachments.Add "C:\Images\CCIA\CCIALogo.jpg" .Attachments.Add "C:\Images\CCIA\CCIALittleGirl.jpg" .HTMLBody = MyHTML .Display .Save .Close False End With Application.ScreenUpdating = True Set oMail = Nothing Set oApp = Nothing End Sub 

谢谢你尽你所能的帮助。

解决了它:

 MyHTML = "<body background=""cid:CCIALittleGirl.jpg""" 

这成功地把图像作为背景。

为了完整性(如果其他人有相同的问题),这里是完整的解决scheme:

 Private Sub EmailCopy() Dim oApp, oMail As Object, MyHTML As String, WB As Workbook, FileName As String, BodyText As String, MyText As String Application.ScreenUpdating = False FileName = ArchiveFolder & ArchiveFileName On Error Resume Next Set oApp = CreateObject("Outlook.Application") Set oMail = oApp.CreateItem(0) MyText = "Please find attached the CCIA report for " & Format(Now, "DD/MM/YYYY") & "<br><br><br><br><br><br><br><br><br><br>" & _ "Congratulations to " & StrConv(Sheets("Summary").Range("A2").Text, vbProperCase) & "<br>" & _ "For an amount of: " & Replace(Sheets("Summary").Range("C2").Text, " ", "") & "<br>" & _ "Across " & Trim(Sheets("Summary").Range("B2").Text) & " donations." MyHTML = "<body background=""cid:CCIALittleGirl.jpg""; center top no-repeat;" MyHTML = MyHTML & vbCrLf & "<p style=""font-size:30px;font-weight:Bold;color:rgb(100%,100%,100%)"">" & MyText & "</p>" MyHTML = MyHTML & vbCrLf & "<br><br><br><br><img src=""cid:CCIALogo.jpg"">" With oMail .to = "email@email.com" .Subject = "CCIA report @ " & Format(Now, "DD/MM/YYYY") .Attachments.Add "C:\Images\CCIA\CCIALogo.jpg" .Attachments.Add "C:\Images\CCIA\CCIALittleGirl.jpg" .Attachments.Add FileName & ".xlsx" .HTMLBody = MyHTML .Display .Save .Close False End With Application.ScreenUpdating = True Set oMail = Nothing Set oApp = Nothing End Sub 

用这个<div style="background-image: cid:CCIALittleGirl.jpg"></div>replace<div style=""background-image: ""cid:CCIALittleGirl.jpg""></div> <div style="background-image: cid:CCIALittleGirl.jpg"></div>