Как я могу написать тело письма в отдельной функции? - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть следующий макрос, который прекрасно работает (нашел код онлайн):

Sub Sample_Auto_Generated_Email()

Dim objOutl
Set objOutl = CreateObject("Outlook.Application")
Set objMailItem = objOutl.CreateItem(olMailItem)
objMailItem.Display
strEmailAddr = "User@Use.com"
objMailItem.Recipients.Add strEmailAddr
objMailItem.Subject = "Sample"    
objMailItem.Body = "Please come by when you get this." & vbNewLine _
                & " " & vbNewLine _
                & "Sample of Line 3"

objMailItem.Send
Set objMailItem = Nothing
Set objOutl = Nothing

End Sub

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

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

1 Ответ

0 голосов
/ 07 сентября 2018
Sub Sample_Auto_Generated_Email()

    Dim objOutl

    Set objOutl = CreateObject("Outlook.Application")
    Set objMailItem = objOutl.CreateItem(olMailItem)

    objMailItem.Display
    strEmailAddr = "User@Use.com"
    objMailItem.Recipients.Add strEmailAddr
    objMailItem.Subject = "Sample"    
    objMailItem.Body = GetMessageBody()  ' <--- This line is different
    objMailItem.Send
    Set objMailItem = Nothing
    Set objOutl = Nothing

End Sub

' This Function has been added.
Private Function GetMessageBody() As String
    GetMessageBody = "Test."
End Function
...