Outlook VBA: Muovi il nuovo (non salvato) voce nella cartella
-
08-10-2019 - |
Domanda
Sto cercando di provocare un nuovo elemento di Outlook per essere creato in un negozio specifico quando l'utente lo salva. Normalmente, se ci sono più account, quando si crea un nuovo elemento (ad esempio premere Ctrl + Shift + K per un compito), il nuovo elemento viene creato nella cartella predefinita per l'account attivo.
Ho provato intercettando l'ispettore per il nuovo elemento e in movimento, ma non ha avuto alcun effetto. Qui è l'essenza del codice (il controllo per evitare non nuovi oggetti viene omesso):
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
Purtroppo, il metodo Move non ha alcun effetto. Tutte le idee?
Soluzione
Non è possibile spostare gli elementi non salvati. Come stai creando l'articolo?
Utilizzare il metodo Items.Add
per aggiungere un elemento (vale a dire crearlo) in una cartella specifica. Se si utilizza il metodo CreateItem, sarà sempre creato nella cartella predefinita per quel tipo di elemento.
Invece di cercare di utilizzare la funzionalità esistenti per cercare di creare l'attività (che non sto certo è possibile o facile) Penso che si sta meglio la creazione di una macro che crea l'attività nella cartella che si desidera, quindi aggiungere la macro a un pulsante della barra degli strumenti. Oppure si potrebbe cercare di salvare l'elemento, poi spostarlo. Si noti che il codice corrente sposta l'elemento nella cartella predefinita Attività.