para macro información exportar datos correos vba outlook outlook-vba

vba - información - macro para exportar datos de outlook a excel



Obtener referencia a Inbox adicional (3)

Algo como esto debería hacer el truco

Dim objNS As Outlook.NameSpace Dim objFolder As Outlook.MAPIFolder Set objNS = GetNamespace("MAPI") Set objFolder = objNS.Folders("Procurement, Request") Set objFolder = objFolder.Folders("Inbox")

Este enlace tiene un código útil para manejar diferentes bandejas de entrada , puede ser de interés

Estoy usando Outlook 2007 y tengo mi buzón principal: Tait, Mark

También agregué otro buzón a mi perfil: Compras, Solicitud

Ambos aparecen como carpetas de nivel superior dentro de Outlook:

Buzón de correo - Tait, Mark> -Conversation History
-Objetos eliminados
-Borradores
-Bandeja de entrada
-Correo electrónico no deseado

Buzón - Aprovisionamiento, Solicitud
--Historial de conversación
--Objetos eliminados
--Borradores
--Bandeja de entrada
--Correo electrónico no deseado

Puedo obtener una referencia a mi Bandeja de entrada predeterminada (Tait, Mark) usando:
Set Inbox = ns.GetDefaultFolder(olFolderInbox)

¿Cómo obtengo una referencia a la Bandeja de entrada en el buzón "Aprovisionamiento, Solicitud"?


Dim olNS As NameSpace Dim InputFolder As Outlook.MAPIFolder Set olNS = Outlook.Application.GetNamespace("MAPI") '' Get reference to folder in users Mailbox for Input Set InputFolder = olNS.Folders("Procurement, Request").Folders("Inbox") '' all the emails in the shared inbox are represented by: InputFolder.Items


Use Namespace.GetSharedDefaultFolder . Funcionará incluso si el buzón no se abre en el perfil actual. Todavía necesita tener el derecho de abrir el buzón y acceder a la carpeta en cuestión, por supuesto:

Set vNamespace = Application.GetNamespace("MAPI") set vRecipient = vNamespace.CreateRecipient("Procurement, Request") if vRecipient.Resolve Then set vFolder = vNamespace.GetSharedDefaultFolder(vRecipient, olFolderInbox) End If

Si necesita abrir el buzón del otro usuario (sin todas sus carpetas), puede usar Redemption y su método RDOSession .GetSharedMailbox:

set Session = CreateObject("Redemption.RDOSession") Session.MAPIOBJECT = Application.Session.MAPIOBJECT set Store = Session.GetSharedMailbox("Procurement, Request") set vFolder = Store.GetDefaultFolder(olFolderInbox) MsgBox "The address of the mailbox owner: " & Store.Owner.Address