Vba 弹出窗口将在outlook中显示不需要的收件人

Vba 弹出窗口将在outlook中显示不需要的收件人,vba,outlook,Vba,Outlook,我有一个150人的名单,我不想发送名单以外的任何电子邮件。是否可以在outlook中设置一个宏,如果我尝试向列表中不存在的电子邮件id发送任何电子邮件,我将在发送电子邮件之前弹出一个窗口?是的,是的。您可以处理应用程序类的ItemSend事件,该事件在用户通过Inspector(Inspector关闭之前,但用户单击Send按钮之后)或Outlook项目的Send方法(例如MailItem)发送Microsoft Outlook项目时触发,在程序中使用 Public WithEvents myO

我有一个150人的名单,我不想发送名单以外的任何电子邮件。是否可以在outlook中设置一个宏,如果我尝试向列表中不存在的电子邮件id发送任何电子邮件,我将在发送电子邮件之前弹出一个窗口?

是的,是的。您可以处理应用程序类的
ItemSend
事件,该事件在用户通过
Inspector
(Inspector关闭之前,但用户单击Send按钮之后)或Outlook项目的
Send
方法(例如
MailItem
)发送Microsoft Outlook项目时触发,在程序中使用

Public WithEvents myOlApp As Outlook.Application 

Public Sub Initialize_handler() 
  Set myOlApp = Outlook.Application 
End Sub 

Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean) 
  Dim prompt As String 
  prompt = "Are you sure you want to send " &; Item.Subject &; "?" 
  If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then 
    Cancel = True 
  End If 
End Sub

您可以检查集合(请参阅Outlook项目的相应属性),而不是简单地显示一个消息框,询问用户发送Outlook项目的权限。它表示Outlook项目的所有收件人。因此,您可以检查它们并与您的列表进行比较

似乎从上面的代码,弹出窗口将显示所有的电子邮件,但我不想看到所有的电子邮件弹出窗口。我有一个150人的名单,因此只有当我尝试向不在150人名单中的人发送电子邮件时,弹出窗口才会显示。有可能吗?有人能帮我吗。代码不起作用。您需要添加一个条件,将发送的项目与项目列表进行比较。谢谢您的评论。如果你能和我分享代码就太好了。