一位同事有一个很好的想法,可以强化Slack用于内部电子邮件。我们考虑过当用户即将发送内部电子邮件时会出现的自定义弹出窗口。这条消息会说“请更喜欢Slack进行内部沟通。你确定还要发送吗?”。
我考虑过在VBA中使用Application.ItemSend事件来触发弹出窗口。 我在VBA方面没有太多经验,但我找到了让我开始的片段:
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
感谢任何帮助。
答案 0 :(得分:1)
因此,您找到的代码段是完美的,并讨论了WithEvents
实例属性。现在它无法在标准模块中声明。您需要在课堂上或ThisOutlookSession
建议使用Class来挂钩应用程序级别事件。但是考虑到你的声明我在VBA中没有太多经验,这里只有一类课程。
但是根据您的要求,您只需将代码放在Application_ItemSend
下ThisOutlookSession
下。这样您就可以避免在启动时创建类并初始化它。
Option Explicit
Private Sub Application_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
请注意,此代码位于 ThisOutlookSession
中