¿Cuál es la sintaxis de VBA para hacer referencia a una carpeta en Outlook 2013?

¿Cuál es la sintaxis de VBA para hacer referencia a una carpeta en Outlook 2013?

Trabajando en algún código para marcar elementos como leídos cuando se mueven a mi carpeta 'Archivo', que está en el mismo nivel que mis carpetas predeterminadas (Bandeja de entrada, Enviados, etc.). El siguiente código fue mi prueba inicial utilizando la carpeta de elementos eliminados predeterminada. ¿Cuál es la sintaxis adecuada para poder hacer referencia a los elementos de mi carpeta Archivo?

Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
  Dim Ns As Outlook.NameSpace
  Set Ns = Application.GetNamespace("MAPI")
  Set Items = Ns.GetDefaultFolder(olFolderDeletedItems).Items

End Sub

Private Sub Items_ItemAdd(ByVal Item As Object)
    Item.UnRead = False
    Item.Save
End Sub 

Respuesta1

Descubrí que es más fácil invocar el método PickFolder en lugar de intentar descubrir cómo hacer referencia a la carpeta Archivo. Ahora mi código funciona correctamente.

Option Explicit

Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
  Dim Ns As Outlook.NameSpace
  Dim myFolder As Outlook.Folder


  Set Ns = Application.GetNamespace("MAPI")

  Set myFolder = Ns.PickFolder

  Set Items = myFolder.Items

End Sub

Private Sub Items_ItemAdd(ByVal Item As Object)
    Item.UnRead = False
    Item.Save
End Sub

información relacionada