我每天都会在收件箱中收到数以千计的电子邮件提醒,但其中很多都是微不足道的。我想检查这些警报的文本是否包含低于某个阈值的数字;如果数字低于该阈值,请提醒我该消息并显示一个消息框。
我正在使用Outlook 2010并找到了几个关于在VB中编写Outlook宏的教程,包括一个关于以编程方式创建规则以将邮件移动到不同文件夹的教程。
但是我不想检查关键字,我想检查消息(主题字段)文本中的数字是否等于或小于阈值。例如,如果邮件的文本包含以下内容,则会向其发出警告并显示一个消息框: -
我需要帮助的是,如果电子邮件主题字段中的值低于45kohm,是否有任何编写代码的方法只会调用消息框? 我可以在规则中这样做,但我必须包括以下所有值,即39.99,39.98,39.97,这太长了!
答案 0 :(得分:0)
您可以使用类似于以下内容的VBA macro
:
Sub SubjectCheckerMessageRule(newMail As Outlook.mailItem)
' "script" routine to be called for incoming mail messages
' This subroutine has to be linked to this mail type using Outlook's rule assistant
Dim EntryID As String
Dim StoreID As Variant
Dim mi As Outlook.mailItem
Dim s As String
Dim x As Double
Const Prefix = "Resistance,"
Const Threshold = 40.0 ' or is it 45.0
' http://www.vboffice.net/en/developers/security-model-part-1/
' In 2003, not 2007 or later
' we have to access the new mail via an application reference
' to avoid security warnings
'
EntryID = newMail.EntryID
StoreID = newMail.Parent.StoreID
Set mi = Application.Session.GetItemFromID(EntryID, StoreID)
If InStr(mi.Subject, Prefix) = 1 Then
s = Mid(mi.Subject, Len(Prefix) + 1)
If IsNumeric(s) Then
x = CDbl(s)
If x <= Threshold Then
MsgBox x & " <= " & Threshold, vbInformation, "Attention!"
End If
End If
End If
End Sub
使用Outlook's Rule Assistant
将此宏定义为感兴趣的传入邮件的Script
。为主题定义关键字,如“抵抗”,以确保仅针对相关邮件调用宏。添加一些错误检查。