如何在单独的函数中编写电子邮件正文?

问题描述 投票:1回答:1

我有以下宏工作得很好(在线找到代码):

Sub Sample_Auto_Generated_Email()

Dim objOutl
Set objOutl = CreateObject("Outlook.Application")
Set objMailItem = objOutl.CreateItem(olMailItem)
objMailItem.Display
strEmailAddr = "[email protected]"
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

有没有办法通过执行一个单独的宏写入正文?最终用户有一个相当长的电子邮件,主要是标准的,所以我希望电子邮件的主体是一个单独的宏,如果可能的话。

这样我可以根据需要编写尽可能多的自定义消息,每次宏写入电子邮件的正文时,我会调用具有我想要的内容的不同宏。

excel vba excel-vba email outlook
1个回答
3
投票
Sub Sample_Auto_Generated_Email()

    Dim objOutl

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

    objMailItem.Display
    strEmailAddr = "[email protected]"
    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
© www.soinside.com 2019 - 2024. All rights reserved.