1

私はこれを試しました:

Sub SendAwaitingResponse()
  Dim mail As MailItem
  Set mail = Outlook.Application.ActiveInspector.CurrentItem
  mail.MarkAsTask (olMarkToday)
  mail.Categories = "Awaiting Response"
  mail.Send
End Sub

次のエラーで:

下書きアイテムはマークできません。MarkAsTask は、送信または受信されたアイテムに対してのみ有効です。

UI で [フォローアップ] をクリックすると、メールは送信後にタスクとしてマークされます。プログラムでそれを行う方法はありません。

4

2 に答える 2

1

送信済みメールをカスタム プロパティでマークするために、[応答待ちの送信] ボタンに関連付けられたマクロを作成します。

Sub SendAwaitingResponse()
    Dim Mail As MailItem
    Set Mail = Outlook.Application.ActiveInspector.CurrentItem
    Dim Property As UserProperty
    Set Property = Mail.UserProperties.Add("FlagAwaitingResponse", olYesNo)
    Property.Value = True
    Mail.Send
End Sub

ThisOutlookSession オブジェクト内で、送信済みアイテム フォルダーに追加されたアイテムを購読します。カスタム プロパティでマークされたアイテムは、Outlook タスクとしてマークされます。

Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
    Dim SentItems As Folder
    Set SentItems = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderSentMail)
    Set Items = SentItems.Items
End Sub

Private Sub Items_ItemAdd(ByVal Item As Object)
    Dim Mail As MailItem
    Set Mail = Item

    Set Property = Mail.UserProperties("FlagAwaitingResponse")
    If Property Is Nothing Then Exit Sub

    Mail.Categories = "Awaiting Response"
    Mail.MarkAsTask (olMarkToday)
    Mail.Save
End Sub

これを機能させるには、Outlook マクロを有効にすることを忘れないでください。

于 2013-10-22T12:36:32.007 に答える
1

送信済みアイテム フォルダーでも Items.ItemAdd にリストし、イベント ハンドラーに渡されたメッセージで MarkAsTask を呼び出す必要があります。

于 2013-10-16T22:52:46.293 に答える