Прикрепить jpg к Outlook Body & center - PullRequest
0 голосов
/ 15 января 2020

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

EmailBody определено выше по потоку от этого, а Target - это просто имя из листа Excel (этот макрос вызывается из другого макроса, который проходит через диапазон).

Мне кажется, проблема в том, как я объявляю объекты внешнего вида. Текущие ошибки отсутствуют (после удаления строки On Error Go To) в Set oAttach = colAttach.Add("C:\Users\urdearboy\Desktop\@\Meme.jpg")


Есть идеи, где я иду не так? Не очень опытный в объектах / свойствах внешнего вида и пытался следовать посту здесь без удачи


Sub Sender(EmailBody As String, Target As Range)

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Dim OutApp As Object
Dim OutMail As Object

On Error GoTo BNP:

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    Set colAttach = OutMail.Attachments
    Set oAttach = colAttach.Add("C:\Users\urdearboy\Desktop\@\Meme.jpg")
    Set olkPA = oAttach.PropertyAccessor

    olkPA.SetProperty PR_ATTACH_CONTENT_ID, "Meme.jpg"

        With OutMail
            .SentOnBehalfOfName = "urdearboy@so.com"
            .to = Target.Offset(0, 1)
            .cc = Target.Offset(0, 2)
            .Subject = "Check Out This Meme " & Target.Offset(0, 3)
            .HTMLBody = "<p style = 'font-family:arial' >" _
                        & "<BODY><CENTER><IMG src =""cid:Meme.jpg""></CENTER></BODY>" _
                        & "Hi " & Target.Offset(0, 0) & ", " & "<br>" _
                        & EmailBody & "</p>" _
                        & "<p style = 'font-family:arial' >" & "<br>" & "Thanks, " & "<br>" _
                        & "urdearboy" & "</p>"

            'Change to .Send to actually send emails
            .Display

            Target.Offset(, -1) = "Sent"

        End With

BNP:
    Set OutApp = Nothing
    Set OutMail = Nothing

End Sub

1 Ответ

2 голосов
/ 15 января 2020

Вам не хватает константного объявления

Sub Sender(EmailBody As String, Target As Range)

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Dim OutApp As Object
Dim OutMail As Object
Dim colattach As Object
Dim oAttach As Object
Dim olkPA As Object

On Error GoTo BNP:

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    Set colattach = OutMail.Attachments
    Set oAttach = colattach.Add("C:\Users\urdearboy\Desktop\@\Meme.jpg")
    Set olkPA = oAttach.PropertyAccessor

    Const PR_ATTACH_CONTENT_ID = "http://schemas.microsoft.com/mapi/proptag/0x3712001F" ' <-----This line

    olkPA.SetProperty PR_ATTACH_CONTENT_ID, "Meme.jpg"

        With OutMail
            .SentOnBehalfOfName = "urdearboy@so.com"
            .to = Target.Offset(0, 1)
            .cc = Target.Offset(0, 2)
            .Subject = "Check Out This Meme " & Target.Offset(0, 3)
            .HTMLBody = "<p style = 'font-family:arial' >" _
                        & "<BODY><CENTER><IMG src =""cid:Meme.jpg""></CENTER></BODY>" _
                        & "Hi " & Target.Offset(0, 0) & ", " & "<br>" _
                        & EmailBody & "</p>" _
                        & "<p style = 'font-family:arial' >" & "<br>" & "Thanks, " & "<br>" _
                        & "urdearboy" & "</p>"

            'Change to .Send to actually send emails
            .Display

            Target.Offset(, -1) = "Sent"

        End With

BNP:
    Set OutApp = Nothing
    Set OutMail = Nothing

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...