【发布时间】:2020-09-24 14:15:33
【问题描述】:
我需要一个适用于 Outlook 的宏:
- 将打开的电子邮件另存为 email.msg(包括附件)
- 关闭当前的电子邮件窗口
- 创建一封从 email.msg 读取的新电子邮件(从步骤 1 开始。)
我在谷歌上做了一些研究,但对我没有任何帮助。 这就是我到目前为止所做的(1. 步骤.. 但不工作)
Option Explicit
Public Sub SaveMessageAsMsg()
Dim oMail As Outlook.MailItem
Dim objItem As Object
Dim sPath As String
Dim dtDate As Date
Dim sName As String
Dim enviro As String
enviro = CStr(Environ("USERPROFILE"))
For Each objItem In ActiveExplorer.Selection
If objItem.MessageClass = "IPM.Note" Then
Set oMail = objItem
sName = oMail.Subject
ReplaceCharsForFileName sName, "email"
dtDate = oMail.ReceivedTime
sName = Format(dtDate, "yyyymmdd", vbUseSystemDayOfWeek, _
vbUseSystem) & Format(dtDate, "-hhnnss", _
vbUseSystemDayOfWeek, vbUseSystem) & "-" & sName & ".msg"
sPath = enviro & "\Documents\"
Debug.Print sPath & sName
oMail.SaveAs sPath & sName, olMsg
'this closes window:
Dim myinspector As Outlook.Inspector
Dim myItem As Outlook.MailItem
Set myinspector = Application.ActiveInspector
Set myItem = myinspector.CurrentItem
myItem.Close olSave
End If
Next
End Sub
【问题讨论】:
标签: vba outlook save new-operator