vba - 通过 Excel VBA 在 Outlook 中打开新邮件

标签 vba excel outlook

每天我都在处理日常报告。这非常耗时。基本上,我需要发送包含昨天销售额与上周和上个月销售额的简要比较的电子邮件。这工作得很好。 完成此操作后,消息将粘贴到新工作表中,然后我必须将其复制并粘贴到 Outlook 中的新电子邮件中。

是否可以创建宏来在 Outlook 中打开新邮件?这样我就可以插入文本了。 我可以编写宏,直接从 Excel 发送数据,但这并不是我真正想要的,因为报告的某些部分必须通过手动查看数字来完成。

提前非常感谢!

最佳答案

要将 ActiveWorbook 添加为附件:

  1. 将其保存到特定位置
  2. 使用 Attachments.Add 从 1 的位置添加文件

代码

Sub CustomMailMessage()
Dim strFile As String
Dim OutApp As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Recipient
Dim Recipients As Recipients

  Set OutApp = CreateObject("Outlook.Application")
  Set objOutlookMsg = OutApp.CreateItem(olMailItem)

  strFile = "C:\temp\myfile.xlsx"
  ActiveWorkbook.SaveAs strFile

  Set Recipients = objOutlookMsg.Recipients
  Set objOutlookRecip = Recipients.Add("alias@domain.com")
  objOutlookRecip.Type = 1

  With objOutlookMsg
    .SentOnBehalfOfName = "sales@domain.com"
    .Subject = "Testing this macro"
    .HTMLBody = "Testing this macro" & vbCrLf & vbCrLf
    'Resolve each Recipient's name.
    For Each objOutlookRecip In objOutlookMsg.Recipients
      objOutlookRecip.Resolve
    Next
    .Attachments.Add strFile
    .display
  End With

  'objOutlookMsg.Send
  Set OutApp = Nothing
End Sub

关于vba - 通过 Excel VBA 在 Outlook 中打开新邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22747284/

相关文章:

excel - 如何使用Excel VBA删除Word文档中的特定页面?

python - 下载Excel文件

email - 如何开发 Outlook/Mail 插件?

javascript - Cors 请求在 Excel 中工作但不能在 Javascript 中工作

Excel:从值列创建一个列表(没有空格或空格)

javascript - 通过 Sharepoint 发送到 Outlook 的电子邮件中未显示换行符

outlook - 如何使用 ical.net 创建 HTML 格式的 ICS 消息正文?

excel - Debug.Print 所有应用程序名称

vba - 如果任何工作表中存在#N/A,则需要阻止用户运行宏

excel - 如何统计文件夹中的文件数