0

メールが特定のフォルダーに移動されるたびに、フィールドに日付を設定しようとしています。フィールドは「完了日」と呼ばれるカスタムです。アイテムがフォルダーに移動されたときにカスタム フィールド (日付) を設定するための VBA コードについて少し助けてもらえますか (フォルダー名は "Completed" です)。

最終的には、アイテム (カスタム フォームの電子メール) が受信されてから完了した時間 (電子メールを完了したフォルダーに移動するアクションに従って) について報告したいと考えています。

非常に初歩的な発券システム、私はよく知っています :) .

ありがとう、

4

1 に答える 1

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 をトリガーした 1 つのアイテムだけを更新するように変更します。

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

于 2013-11-17T17:37:01.440 に答える