【发布时间】:2015-04-24 18:21:16
【问题描述】:
就像标题一样,我想通过 Outlook 功能区中的按钮打开表单。此表单包含所选邮件的 MailBody 和一些 DropDown 字段。 当您单击“发送”时,应该会弹出一个在 ThisOutlookSession 中定义的 MsgBox,但它不起作用。 当我使用“选择表单”手动打开表单时,它可以工作。 这是一个错误,还是有任何解决方法? 提前谢谢你,如果有什么不清楚的地方请询问。
我使用 VBA。 在 ThisOutlookSession 的 Project1 下,我有以下代码:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
MsgBox ("Hallo")
End Sub
表单存储/发布在私有表单库下,并使用以下代码从模块调用:
Set cstmControls = otlMAPIFolder.Items.Add("IPM.Note.Formular3")
但是当我点击功能区的发送按钮时,MsgBox 没有出现。
Module的完整代码,调用Form:
Option Explicit
Public otlAppl As Outlook.Application
Public otlMAPINameSpace As NameSpace
Public otlMAPIFolder As MAPIFolder
Public otlMailItem As MailItem
Public cstmControls As MailItem
Public cstmUprop As UserProperties
Sub FormSend()
Set otlAppl = CreateObject("Outlook.Application")
Set otlMAPINameSpace = otlAppl.GetNamespace("MAPI")
Set otlMAPIFolder = otlMAPINameSpace.GetDefaultFolder(olFolderInbox)
Set otlMailItem = ActiveExplorer.Selection.Item(1)
Set cstmControls = otlMAPIFolder.Items.Add("IPM.Note.Formular3")
Set cstmUprop = cstmControls.UserProperties
'Body
Dim strBody As String
strBody = otlMailItem.Body
'Recipient
Dim strTo As String
strTo = otlMailItem.SenderEmailAddress
strBody = strBody
With cstmControls
.To = strTo
.Body = strBody
.Display True
End With
End Sub
【问题讨论】:
-
你用什么代码?你能说得更具体点吗?
-
发送按钮有什么作用?它是 Outlook UI 中的标准按钮吗?您是否尝试以编程方式调用 Send 方法?