Outlook VBA: переместить новый (несохраненный) элемент в папку - PullRequest
0 голосов
/ 05 декабря 2010

Я пытаюсь создать новый элемент 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

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

1 Ответ

1 голос
/ 21 ноября 2011

Нельзя перемещать несохраненные предметы. Как вы создаете предмет?

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

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

...