2013-04-16 79 views
2

我试图编写一个宏,在用户点击发送按钮时查看电子邮件的主题行。发送电子邮件时运行宏

但是我找不到任何听该按钮的文档。就目前而言,我只是试图让它在发送邮件时发送MsgBox这个主题。有没有办法倾听(思考DOM DOM)这个按钮,并点击一个宏。

+2

使用此'私人小组实现Application_ItemSend(BYVAL项目为对象,取消由于布尔)'HTTP:// MSDN .microsoft.com/EN-US /图书馆/办公室/ bb147641%28V = office.12%29.aspx –

回答

4

至于建议由亚洲时报Siddharth:

我写了一个小的演示,检查一些条件来决定,如果发送操作应被取消。这可以扩展到做其他事情,如插入日期,保存邮件到某个文件夹,...

Option Explicit 

Private Sub Application_ItemSend(ByVal objItem As Object, Cancel As Boolean) 
    Dim mi As MailItem 

    If TypeName(objItem) = "MailItem" Then 
     Set mi = objItem 

     Debug.Print mi.Subject 

     check Cancel, Trim(mi.Subject) <> "", "Subject is empty!" 
     check Cancel, Not isRecipient(mi, "[email protected]"), _ 
       "John is on our embargo list!" 
    End If 
End Sub 

Private Sub check(ByRef Cancel As Boolean, cond As Boolean, msg As String) 
    If Not (Cancel Or cond) Then 
     Cancel = (MsgBox(msg & vbCrLf & "Cancel send operation?", _ 
         vbYesNoCancel, "Confirm?") <> vbNo) 
    End If 
End Sub 

Private Function isRecipient(mi As MailItem, forbidden As String) As Boolean 
    Dim ret As Boolean 
    Dim rc As Recipient 

    ret = False 

    For Each rc In mi.recipients 
     If StrComp(rc.Address, forbidden, vbTextCompare) = 0 Then 
      ret = True 
      Exit For 
     End If 
    Next 

    isRecipient = ret 
End Function