Outlook VBA: переместить новый (несохраненный) элемент в папку

StackOverflow https://stackoverflow.com/questions/4355961

  •  08-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь вызвать новый элемент Outlook, который будет создан в конкретном магазине, когда пользователь его спасает. Обычно, если есть несколько учетных записей, когда вы создаете новый элемент (например, нажмите Ctrl + Shift + K для задачи), новый элемент создан в папке по умолчанию для активной учетной записи.

Я пытался перехватить инспектор для нового предмета и перемещать его, но он не имел никакого эффекта. Вот суть кода (проверка, чтобы избежать не новых элементов отсутствует):

Dim WithEvents inspectors As Outlook.inspectors

Private Sub Application_Startup()
    Set inspectors = Application.inspectors
End Sub

Private Sub inspectors_NewInspector(ByVal Inspector As Inspector)
    Dim item As Object
    Set item = Inspector.CurrentItem
    If item Is Nothing Then Exit Sub
    If item.Class <> olTask Then Exit Sub
    item.Move Application.GetNamespace("MAPI").GetDefaultFolder(olFolderTasks)
End Sub

К сожалению, метод движения не имеет никакого эффекта. Есть идеи?

Это было полезно?

Решение

Вы не можете перемещать несогласованные предметы. Как вы создаете товар?

Использовать Items.Add Способ добавить элемент (т.е. создать его) в определенной папке. Если вы используете метод CreateITem, он всегда будет создан в папке по умолчанию для этого типа элемента.

Вместо того, чтобы попытаться использовать существующую функциональность, чтобы попытаться создать задачу (которая я не уверен, возможно или просто), я думаю, вам лучше создавать макрос, который создает задачу в папке, которую вы хотите, а затем добавьте макрос кнопка панели инструментов. Или вы можете попробовать и сохранить элемент сначала, затем переместить его. Обратите внимание, что ваш текущий код перемещает элемент к папке задач по умолчанию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top