2013-04-16 80 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