2016-04-21 51 views
2

我一直在试图改善在办公室的后续电子邮件的过程“生活质量”有一个窗体+ VBA代码片段,我已经打了一个路障,虽然我已经能够创建一个全新电子邮件和类似。体,.Attachments.Add,。要等所有的好东西格式化,我一直没能图了解如何回复已经存在的电子邮件,这是后续流程的必要组成部分。瞄准一个开放的Outlook电子邮件的人群(如Outlook 2010)

我看到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 

的最终目标是只是来填充响应消息,使用户可以只是追加相应的用户签名,并把它关闭,没有什么花哨或自动但有些东西只是让生活变得轻松一些,并且工作得更快一些。我有其他事情在这个项目中来解决(例如:打OK没有选择任何一种预定因素会可能仍然建立电子邮件不管),因为我去上,但是这可能是我的路径中的最大障碍。

我道歉,如果这是达不到标准或者是否有遗漏/不清楚,我只是又一个新手寻找一些方向;一直在用Object Explorer,MSDN和普通的旧搜索去学习。如果有什么不明确的地方,我会尽力澄清。

谢谢你的时间。

回答

0

使用MailItem.Reply方法 - 它返回新创建的MailItem对象。上面的代码没有多大意义 - objMsg变量未初始化,MailItem对象没有ActiveInspector属性,但Application对象具有此属性。您可能还想看看Application.ActiveExplorer.Selection集合:它将包含文件夹中当前选定的项目。 Application.ActiveInspector仅适用于在活动检查器中打开的消息。

+0

这正是你说:我从来没有初始化我想要使用。我会说我原来的帖子中有一件事不清楚,我**希望选择当前的_open_电子邮件,而不是当前的_selected_,因为我的公司将.msg文件归档到我们的专有系统中,然后在需要“跟进”时打开.msg文件。 – fixer446