当项目移动到Outlook中的文件夹时设置自定义值

时间:2013-10-23 03:21:39

标签: vba outlook directory user-defined-fields

我希望在电子邮件移动到特定文件夹时随时在字段上设置日期。 该字段是自定义的称为“完成日期”。 当项目移动到文件夹(文件夹名称为“已完成”)时,我是否可以获得有关VBA代码的一些帮助来设置自定义字段(日期)。

我最终希望报告收到项目(自定义表单电子邮件)到完成时的时间(根据将电子邮件移动到已完成文件夹的操作。

非常基本的票务系统,我非常清楚:)。

谢谢,

A

1 个答案:

答案 0 :(得分:0)

使用ItemAdd http://www.outlookcode.com/article.aspx?id=62,您可以在其中引用“已完成”文件夹。

将其与此http://www.vbaexpress.com/forum/showthread.php?5738-Need-to-Add-a-Userdefined-Property-to-Mail-Items

之类的代码结合使用

示例代码

更改它,以便更新文件夹中的所有项目,只触发触发ItemAdd的项目。

Option Explicit 

Sub AddAUserDefinedProperty() 

Dim olApplication   As Outlook.Application 
Dim olNameSpace     As Outlook.NameSpace 
Dim olFolder        As Outlook.MAPIFolder 
Dim olItem          As Object 
Dim strDomain       As String 
Dim olProperty      As Outlook.UserProperty 

Set olApplication = New Outlook.Application 
Set olNameSpace = olApplication.GetNamespace("Mapi") 
Set olFolder = olNameSpace.GetDefaultFolder(olFolderJunk) 

For Each olItem In olFolder.Items 

    strDomain = Mid(olItem.SenderEmailAddress, _ 
    InStr(1, olItem.SenderEmailAddress, "@") + 1) 

    Set olProperty = olItem.UserProperties.Add("Domain", olText) 

    olProperty.Value = strDomain 

    Debug.Print olItem.SenderEmailAddress, olProperty.Value 

    olItem.Save 

Next olItem 

Set olApplication = Nothing 
Set olNameSpace = Nothing 
Set olFolder = Nothing 
Set olProperty = Nothing 

End Sub 

此处有更多参考资料http://www.codeproject.com/Articles/427913/Using-User-Defined-Fields-in-Outlook