2016-08-09 90 views
0
Sub WordCount() 

Dim NewEmail As Object 

Dim NewEmailString As String 
Dim NewEmailStringwoSpaces As String 

Dim CountLength As Integer 
Dim CountLengthwoSpace As Integer 
Dim WordCount As Integer 

Set NewEmail = Application.ActiveInspector.CurrentItem 

NewEmailString = NewItem.Body 
NewEmailStringwoSpace = Replace(NewEmailString, " ", "") 

CountLength = Len(NewEmailString) 
CountLengthwoSpace = Len(NewEmailStringwoSpace) 

WordCount = (CountLength - CountLengthwoSpace) + 1 

If WordCount > 150 Then 
MsgBox ("You are writing too much") 
End If 

End Sub  

當我在我的電子郵件中寫入太多時,我想要一條警告消息。 如果我寫超過150個單詞,我希望MsgBox出現阻止我。如何在寫郵件時觸發宏?

我面臨2個問題。

  1. 如何在寫電子郵件時觸發此宏? Outlook VBA中是否有onkeyup事件處理程序?

  2. 如何區分原始郵件和回覆郵件? 該宏無效,因爲它在回覆時正在計算原始消息的字數。我只想計算新消息。

+0

如果您正在編寫純文本,我會考慮創建一個UserForm,您可以從郵件項目功能區調用並將其用於驗證,然後可以將您的文本插入到電子郵件中併發送。 –

回答

0

1)您可以觸發ItemSend事件中的代碼並在必要時取消發送。

2)有些人試圖通過查找「From:」的第一個實例來區分答覆。這不可靠。當新的檢查員產生時,你可以計數這些詞。您可以將計數保存在全局變量中以確定ItemSend中重新計數的差異。小心使用不可能在其他代碼中意外重複使用的變量名稱。我建議您在不打開其他項目的情況下完成郵件,以保留正確的原始字數。

相關問題