Как переместить новую задачу Outlook (созданную с помощью VBA) в отдельную папку задач, не связанную с моей электронной почтой? - PullRequest
0 голосов
/ 09 января 2019

Я создал новую папку задач «Запросы на сертификацию», которая не связана с моей основной папкой задач, которая связана с моей папкой «Входящие». Я хочу, чтобы эти новые задачи, которые создает мой VBA, помещались в новую папку, а не в мой основной список задач.

У меня уже написан код VBA, и он работает правильно, но задачи создаются в моем списке основных задач. Этот скрипт выполняется на основе созданного правила.

Sub CreateNewTask(Item As Outlook.MailItem)
    Dim obApp As Object
    Dim NewTask As TaskItem

    Set obApp = Outlook.Application
    Set NewTask = obApp.CreateItem(olTaskItem)

    With NewTask
        .Subject = Item.Subject
        .Body = Item.Body
        .Importance = olImportanceHigh
        .Save
    End With

    Set obApp = Nothing
    Set NewTask = Nothing
End Sub

Я ожидаю, что новая созданная задача будет перемещена непосредственно в эту новую папку задач «Запросы на сертификацию» при запуске правила. Любая помощь приветствуется, так как я все еще новичок в понимании VBA.

1 Ответ

0 голосов
/ 10 января 2019

Просто Move NewTask к рассматриваемой папке.

Sub CreateNewTask(Item As Outlook.MailItem)
    Dim myNamespace As Outlook.NameSpace
    Dim myFolder As Outlook.Folder
    Dim NewTask As Outlook.TaskItem

    Set myNamespace = Application.GetNamespace("MAPI")
    Set myFolder = myNamespace.Folders("johndoe@outlook.com").Folders("Certification Requests")
    Set NewTask = Application.CreateItem(olTaskItem)

    With NewTask
        .Subject = Item.Subject
        .Body = Item.Body
        .Importance = olImportanceHigh
        .Save
        .Move myFolder
    End With
End Sub

Кроме того, вы можете Add новый элемент задачи в папке.

Sub CreateNewTask(Item As Outlook.MailItem)
    Dim myNamespace As Outlook.NameSpace
    Dim myFolder As Outlook.Folder
    Dim NewTask As Outlook.TaskItem

    Set myNamespace = Application.GetNamespace("MAPI")
    Set myFolder = myNamespace.Folders("johndoe@outlook.com").Folders("Certification Requests")
    Set NewTask = myFolder.Items.Add(olTaskItem)

    With NewTask
        .Subject = Item.Subject
        .Body = Item.Body
        .Importance = olImportanceHigh
        .Save
    End With
End Sub

Возможно, вам придется изменить Set myFolder = … в зависимости от того, где находится ваша папка «Certification Requests» в иерархии папок).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...