就像在标题中我想通过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不会出现。
模块的完整代码,调用表单:
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
答案 0 :(得分:0)
看起来在Outlook中没有触发ItemSend事件。
是否启用了运行宏?信任中心的宏设置和程序访问有哪些设置?
你从哪里获得Application类?
使用Application_Startup()事件来实例化事件处理Application对象。您可以在ItemSend not firing for outlook 2010 - Security is Low论坛主题上了解更多相关信息。