Как добавить пробел или пробел между изображениями, встроенными в HTML, для электронной почты, написанной в Excel VBA? - PullRequest
0 голосов
/ 12 апреля 2019

Я отправляю электронное письмо Outlook из Excel VBA, которое забирает 2 изображения для отображения в теле сообщения электронной почты.Я могу успешно заставить Изображения отображаться рядом друг с другом, но я хотел бы, чтобы между ними был пробел или пробел - как я могу добавить это в?

Я не хочу, чтобы они были в отдельных строках.

Я пытался использовать теги img «hspace», «border» и «margin», но они, похоже, не распознаются и не читаются, так как не влияют на расположение изображений.Или я их неправильно пишу!

Public Sub EmailData()

Dim OutApp As Object
Dim OutMail As Object
Dim Top10CompaniesPicLocation As String
Dim ReasonsPicLocation As String

Top10CompaniesPicLocation = "\\Images\Top10Companies.jpg"
ReasonsPicLocation = "\\Images\ReasonsTotals.jpg"

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

With OutMail
.To = ""
.Subject = "Performance"
 .Attachments.Add Top10CompaniesPicLocation, 1, 0
 .Attachments.Add ReasonsPicLocation, 1, 0

.HTMLBody = "Good Morning,<br><br>Please see below for snapshots of the Performance.<br><br>"

.HTMLBody = .HTMLBody _
& "<img src='cid:Top10Companies.jpg'>" _
& "  " _
& "<img src='cid:ReasonsTotals.jpg'><br><br><br>" _
& "Kind Regards<br><br><br>"

'.Send
.Display

End With

Set OutApp = Nothing
Set OutMail = Nothing

End Sub

Ответы [ 2 ]

0 голосов
/ 15 апреля 2019

Спасибо, Луис Курадо и Гвали. Оба ваших предложения работают именно для того, чего я хочу достичь - приведенный ниже код включает оба решения.

Public Sub EmailData()

Dim OutApp As Object
Dim OutMail As Object
Dim Top10CompaniesPicLocation As String
Dim ReasonsPicLocation As String

Top10CompaniesPicLocation = "\\Images\Top10Companies.jpg"
ReasonsPicLocation = "\\Images\ReasonsTotals.jpg"

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

With OutMail
.To = ""
.Subject = "Performance"
.Attachments.Add Top10CompaniesPicLocation, 1, 0
.Attachments.Add ReasonsPicLocation, 1, 0

.HTMLBody = "Good Morning,<br><br>Please see below for snapshots of the Performance.<br><br>"

.HTMLBody = .HTMLBody _
& "<img src='cid:Top10Companies.jpg'>" _
& "&nbsp&nbsp&nbsp&nbsp  " _
& "<img src='cid:ReasonsTotals.jpg'><br><br><br>"

.HTMLBody = .HTMLBody _
& "<table role='presentation' cellspacing='0' cellpadding='0' border='0' width='100%'>" _
& "  <tr>" _
& "    <td style='padding: 10px 10px 10px 0px;'>" _
& "        <img src='cid:Top10Companies.jpg'>" _
& "    </td>" _
& "    <td style='padding: 10px 0px 10px 10px;'>" _
& "        <img src='cid:ReasonsTotals.jpg'>" _
& "    </td>" _
& "  </tr>" _
& "</table>" _
& "Kind Regards<br><br><br>"

'.Send
.Display

End With

Set OutApp = Nothing
Set OutMail = Nothing

End Sub
0 голосов
/ 12 апреля 2019

В Outlook 2007-2019 hspace, border и margin не работают на <img>

Наиболее последовательный способ установить промежуток, скажем, 20 пикселей, - это построить таблицу и применить отступ к ячейке td.

Примерно так:

<table role='presentation' cellspacing='0' cellpadding='0' border='0' width='100%'>
  <tr>
    <td style='padding: 10px 10px 10px 0px;'>
        <img src='cid:Top10Companies.jpg'>
    </td>
    <td style='padding: 10px 0px 10px 10px;'>
        <img src='cid:ReasonsTotals.jpg'>
    </td>
  </tr>
</table>

Заполнение настроено на добавление небольшого отступа сверху, снизу, но без заполнения на левой стороне левого изображения, чтобы сохранить выравнивание по левому краю с другими объектами в электронном письме.

Если вы кратки, вы можете упростить таблицу, сделав следующее:

<table cellspacing='4' width='100%'>
  <tr>
    <td>
      <img src='cid:Top10Companies.jpg'>
    </td>
    <td>
      <img src='cid:ReasonsTotals.jpg'>
    </td>
  </tr>
</table>

Это создает разрыв в 8 пикселей между изображениями, но отталкивает левое изображение на 4 пикселя от левого поля.

Удачи.

...