我的任务是一个非常简单的目标。使用VBA在Lotus Notes中打开一个新的电子邮件窗口,但请继续阅读完全理解我的问题。目前,我已经开发了vba代码,可以在Lotus Notes中创建一个新的电子邮件,并用各种信息填充它,例如收件人,主题,正文和附件;然后最终将电子邮件发送给收件人。一切都完美无瑕。唯一的问题是它在幕后做了所有这些,如果不是与收件人核对,我不知道发送的电子邮件。为了解决这个问题,我希望vba代码在心理上弹出一个新的电子邮件窗口,其中包含所有相同的信息,但强迫我手动发送电子邮件(通过点击发送按钮)。这样我知道电子邮件将被发送,所以我可以根据需要添加额外的信息。
我看过的网络数量超出了我的数量,所有这些问题似乎都解决了与我的问题略有不同的问题。任何有关正确方向的建议或提示都将受到赞赏。
谢谢!
感谢您的建议。继承我的代码:
Sub Prepare_email()
Dim Maildb As Object
Dim MailDoc As Object
Dim Body As Object
Dim Session As Object
Dim Subject As String
'Start a session to notes
Set Session = CreateObject("Lotus.NotesSession")
'This line prompts for password of current ID noted in Notes.INI
Call Session.Initialize
'Open the mail database in notes
Set Maildb = Session.GETDATABASE("", MailDbName)
If Maildb.IsOpen = True Then
Else
Call Maildb.Open
End If
'Create the mail document
Set MailDoc = Maildb.CREATEDOCUMENT
Call MailDoc.ReplaceItemValue("Form", "Memo")
'Set the recipient, calls a GetPrimary Email function
Call MailDoc.ReplaceItemValue("SendTo", GetPrimaryEmail)
'Set subject, calls subject function
Subject = getCompanyName
Call MailDoc.ReplaceItemValue("Subject", Subject)
'Create and set the Body content
Set Body = MailDoc.CREATERICHTEXTITEM("Body")
Call Body.APPENDTEXT("BODY Content")
'Example to save the message
MailDoc.SAVEMESSAGEONSEND = True
'Send the document
Call MailDoc.ReplaceItemValue("PostedDate", Now())
Call MailDoc.SEND(False)
'Clean Up
Set Maildb = Nothing
Set MailDoc = Nothing
Set Body = Nothing
Set Session = Nothing
End Sub
答案 0 :(得分:3)
通过"在幕后",我认为你的意思是你正在使用Notes"后端课程"。如果你想在客户端中实际打开一个窗口,你必须使用"前端"类。
要理解的一个重要区别是"前端"类被公开为OLE对象(Notes.NotesUIWorkspace),以及"后端"类作为OLE(Notes.NotesSession)和COM(Lotus.NotesSession)对象公开。请注意不同的前缀:'注意'对于OLE类,' Lotus'用于COM类。
NotesUIWorspace类和您可以通过它驱动的其他前端类都是关于自动化Notes客户端的实际操作。您可以找到NotesUIWorkspace类here的文档。使用OLE类时,Notes客户端将自动启动,除非它已在运行。使用COM类时,Notes客户端不需要运行,也不会自动启动。
答案 1 :(得分:0)
第一步是保存您的文档而不是致电Send
,即如果Call doc.Save( True, True )
是您的doc
课程,请致电NotesDocument
。
第二步是使用CreateObject("Notes.NotesUIWorkspace").EDITDOCUMENT True, doc
作为旁注:显示您的代码实际上有助于回答问题!