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似乎能阻止我。
我面临两个问题。
在撰写电子邮件时如何触发此宏? 是否有Outlook VBA的onkeyup事件处理程序?
如何区分原始邮件和回复邮件? 此宏无效,因为它在回复时计算原始邮件的单词。我只想数新消息。
答案 0 :(得分:0)
1)您可以触发ItemSend事件中的代码,并在必要时取消发送。
2)有些人试图通过查找“From:”的第一个实例来区分回复。这不可靠。您可以在新检查员生成时计算单词。您可以将计数保存在全局变量中,以确定ItemSend中重新计数的差异。小心使用不可能在其他代码中意外重用的变量名。我建议您在不打开其他项目的情况下完成邮件,以保持正确的原始字数。