En una formación reciente un alumno planteaba la duda de cómo conseguir eliminar automáticamente desde Excel el último correo electrónico enviado...
La idea era automatizar envíos masivos de emails desde Excel e ir eliminando cada correo remitido.
Para dar respuesta al alumno emplearemos la propiedad .DeleteAfterSubmit asociado al objeto MailItem.
En el blog hemos escrito algunos artículos sobre la forma de enviar emails desde Excel empleado la aplicación de Outlook (ver post).. asi que nos centraremos en esta propiedad comentada.
Nuestra macro añadida dentro de un módulo estándar de nuestro proyecto de VB:
Tras ejecutar la macro, el resultado es el esperado...El email enviado se ha eliminado de la carpeta de Enviados.
La idea era automatizar envíos masivos de emails desde Excel e ir eliminando cada correo remitido.
Para dar respuesta al alumno emplearemos la propiedad .DeleteAfterSubmit asociado al objeto MailItem.
En el blog hemos escrito algunos artículos sobre la forma de enviar emails desde Excel empleado la aplicación de Outlook (ver post).. asi que nos centraremos en esta propiedad comentada.
Nuestra macro añadida dentro de un módulo estándar de nuestro proyecto de VB:
Sub EnvioMail_y_Borrado() Dim olApp As Object Dim olMailItm As Object 'Creamos 'la aplicación de MS Outlook' 'que será la que voy a utilizar Set olApp = CreateObject("Outlook.Application") 'Emplearemos el email creado en la línea anterior 'y genero un email vacío... de momento Set olMailItm = olApp.CreateItem(0) With olMailItm 'indicamos quién es el destinatario... y lo incluimos en el apartado de 'Para...' 'podíamos haber empleado las opciones .CC (con copia) 'o también .BCC (con copia oculta) .to = "cursos@excelforo.com" '.CC = "xx@excelforo.com" '.BCC = "yy@excelforo.com" 'cuál es el asunto... .Subject = "Excelforo: prueba para eliminar email enviado" ' y cual el cuerpo del correo electrónico .Body = "Esto es una prueba de envío de emails desde Excel" & vbCrLf & _ "El objetivo es eliminarlo automáticamente una vez enviado..." & vbCrLf & _ "Saludos cordiales!" 'si quisieramos ver el email... '.Display 'indicamos que se elimnaré después del envío .DeleteAfterSubmit = True 'y lo enviamos... .Send End With 'Dejamos limpias las variables empleadas Set olMailItm = Nothing Set olApp = Nothing End Sub
Tras ejecutar la macro, el resultado es el esperado...El email enviado se ha eliminado de la carpeta de Enviados.
Muchas gracias Ismael, me sera de gran ayuda.
ResponderEliminar;-)
Eliminarslds!