我一直在尝试使用userform + vba片段来改善办公室后续电子邮件流程的“生活质量”,而我在创建的过程中遇到了障碍一个全新的电子邮件,并将其格式化为所有好东西,如 .Body,.Attachments.Add,.To等,我一直无法弄清楚如何回复已经存在的电子邮件,这是此后续流程的必要部分。
我看到this SO page为C#/ vb.net提供了解决方案,在使用对象浏览器时,我发现VBA中也存在“Application.ActiveExplorer”。这就是我目前正在使用的内容:
Private Sub btnSubmit_Click() Dim msg As String Dim objMsg As Outlook.MailItem Set followUp = objMsg.ActiveInspector.CurrentItem With followUp ' Compose message msg = "Good Morning," & "<br />" & "<br />" msg = msg & "This is a follow-up request for the following outstanding subjectivities: " & "<br />" & "<br />" For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) Then Counter = Counter + 1 msg = msg & ListBox1.List(i) & "<br />" Else: If Counter = 0 Then msg = msg & “nothing” End If Next msg = msg & "<br />" & "If these are not submitted within 3 days, a Notice of Cancellation will be sent." & _ "Please let us know if you have any questions or concerns." & "<br />" & "<br />" .Reply .HTMLBody = msg ' .Attachments.Add (" ") Unload subjectivitiesSelection .Display End With End Sub
最终目标只是填充响应消息,以便用户可以添加相应的用户签名并将其发送出去,没有什么花哨或自动化的东西,只是让生活变得更轻松,工作更快一些。我在这个项目中还有其他事情需要解决(例如:在没有选择任何预定因素的情况下点击确定可能仍然可以构建电子邮件),因为我继续,但这可能是最大的障碍我自己的路。
如果这不符合标准,或者如果有任何遗漏/不清楚,我道歉,我只是另一个寻找方向的新手;我正在学习这个,因为我使用对象资源管理器,MSDN和简单的旧搜索。如果有什么不明确的话,我会尽力澄清一切。
感谢您的时间。
答案 0 :(得分:0)
使用MailItem.Reply方法 - 它返回新创建的MailItem对象。上面的代码没有多大意义 - objMsg变量没有初始化,而且MailItem对象没有ActiveInspector属性,但Application对象没有。您可能还想查看Application.ActiveExplorer.Selection集合:它将包含文件夹中当前选定的项目。 Application.ActiveInspector仅适用于在活动检查器中打开的消息。