Hola a todos!
En esta ocasión te muestro un código para leer los emails de Outlook desde el mismo Excel.
Debes tener Outlook en tu pc instalado y configurado con uno o mas correos para que esta macro funcione.
Ya que la macro utiliza la información de Outlook de tu pc para extraer la información de los correos.
Recientemente me hicieron un requerimiento por la página de solicitudes.
La cual es:
Hola, descargué un archivo donde te enlista los nombre de los correos que se reciben, solo que mi duda es: Cómo puedo seleccionar otra carpeta de otro correo que tengo montado. Saludos.
Para lo cual actualicé este artículo con base en esa solicitud.
[Recuerda] Al final del artículo puedes descargar el archivo de Ejemplo!
Así que empecemos. 👇
Configurar referencias para leer emails
Lo primero que debemos realizar es adicionar la referencia «Microsoft Outlook XX Object Library«.
Esto es, para que en nuestro código podamos acceder a las funciones de Outlook.
Código para leer emails de Outlook
Este es realmente el código que necesitamos para obtener los correos de la bandeja de entrada del correo predeterminado.
'Creado por Practicaprende.com
Sub readEmail()
Dim row As Integer
row = 2
Dim ol As Outlook.Application
Set ol = New Outlook.Application
Dim olNS As Outlook.Namespace
Set olNS = ol.GetNamespace("MAPI")
Dim fldr As Outlook.MAPIFolder
Set fldr = olNS.GetDefaultFolder(olFolderInbox)
Dim olMail As Outlook.MailItem
For Each olMail In fldr.Items
Cells(row, 1) = olMail.ReceivedTime
Cells(row, 2) = olMail.Subject
Cells(row, 3) = olMail.SenderName
Cells(row, 4) = olMail.SenderEmailAddress
Cells(row, 5) = olMail.Attachments.Count
row = row + 1
Next
End Sub
Es un código corto, pero a la vez muy útil que te puede servir mucho, es increíble todo lo que se puede hacer con código en Excel.
Como obtener correos desde otro correo configurado
Esta es parte de la solicitud, y básicamente se necesita establecer desde cual correo/email quieres obtener los correos y desde qué carpeta.
Entonces para eso vamos a modificar una línea del anterior código.
Sub readEmail()
'... El resto de código
Set fldr = olNS.Folders(1) ' Este número indica el correo/email configurado del cual queremos extraer los correos
'... El resto de código
End Sub
Otra forma es especificar desde qué correo/email queremos obtener los correos,
Sub readEmail()
'... El resto de código
Set fldr = olNS.Folders("contacto@practicaprende.com")' Este es el correo/email del cual queremos extraer los correos
'... El resto de código
End Sub
Por ejemplo tenemos la siguiente estructura de carpetas en Outlook, y queremos extraer los emails de la carpeta «Universidad»
Para esto entonces debemos utilizar el siguiente código:
'Creado por Practicaprende.com
Sub readEmail()
Dim row As Integer
row = 2
Dim ol As Outlook.Application
Set ol = New Outlook.Application
Dim olNS As Outlook.Namespace
Set olNS = ol.GetNamespace("MAPI")
Dim fldr As Outlook.MAPIFolder
Set fldr = olNS.Folders("contacto@practicaprende.com").Folders("Bandeja de entrada").Folders("Universidad")
Dim olMail As Outlook.MailItem
For Each olMail In fldr.Items
Cells(row, 1) = olMail.ReceivedTime
Cells(row, 2) = olMail.Subject
Cells(row, 3) = olMail.SenderName
Cells(row, 4) = olMail.SenderEmailAddress
Cells(row, 5) = olMail.Attachments.Count
row = row + 1
Next
End Sub
Con esto puedes obtener cualquier carpeta de cualquier correo configurado en Outlook.
Espero sea de tu ayuda!
CONCLUSION
Ya aprendiste como Leer emails de Outlook desde Excel, ya te queda a ti personalizarlo para adaptarlo a tus necesidades.
Si quieres ver mas ejemplos que tenemos visita nuestro Blog
Espero te guste!
Saludos!
DESCARGAR EJEMPLO
En el siguiente link puedes descargar el archivo utilizado, Si tienes alguna duda o sugerencia para mejorar el código, simplemente comenta en el formulario de Contacto
Para descargar el archivo utilizado es necesario estar registrado. Acá Puedes Registrarte y si ya estas registrado puedes ingresar a tu cuenta de usuario.