![Outlook BCC 提示 VBA 不会自动运行](https://linux22.com/image/1557585/Outlook%20BCC%20%E6%8F%90%E7%A4%BA%20VBA%20%E4%B8%8D%E4%BC%9A%E8%87%AA%E5%8A%A8%E8%BF%90%E8%A1%8C.png)
我对 VBA 还很陌生(如果这是一个愚蠢的问题,我很抱歉),尽管我已经为 excel 中的按钮之类的小应用程序编写了几年代码。但这一点我一直不清楚;我想在 Outlook 的自动循环中实现此 BCC 提示功能。当我运行宏时,它工作正常,直到我重新启动 Outlook。为什么每次启动 Outlook 时我都必须一遍又一遍地重新激活此宏?我将其放在 ThisOutlooksession 中,启用了所有宏(顺便说一句;这需要永远启用吗?对我来说似乎不安全)但没有成功。如果有人能帮助我,那就太好了!提前谢谢。
Public WithEvents myOlApp As Outlook.Application
Public Sub Initialize_handler()
Set myOlApp = CreateObject("Outlook.Application")
End Sub
Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim prompt As String
prompt = "The BCC Field is empty!"
If Item.BCC = "" Then
If msgbox(prompt, vbYesNo + vbQuestion, "BCC Field") = vbNo Then
Cancel = True
End If
End If
End Sub
答案1
自动运行Initialize_handler
:
Private Sub Application_startup()
Initialize_handler
End Sub
您可以使用以下方法简化:
Private Sub Application_startup()
Set myolApp = CreateObject("Outlook.Application")
End Sub
您可以通过删除所有代码并改用以下代码来简化:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim prompt As String
prompt = "The BCC Field is empty!"
If Item.BCC = "" Then
If MsgBox(prompt, vbYesNo + vbQuestion, "BCC Field") = vbNo Then
Cancel = True
End If
End If
End Sub
答案2
使用Application_Startup()
而不是Initialize_handler()
。