Aquí es un método para cómo enviar correos electrónicos utilizando una macro VBA en Excel. En este post, no voy a ir a través de una guía paso a paso sobre cómo el envío de mensajes de correo electrónico utilizando Excel es posible el uso de macros y opciones de VBA en Microsoft Excel.
Esto es porque la plantilla de hoja de cálculo que me gustaría compartir fue creado para un propósito muy específico, y es poco probable que sea útil para el lector del blog promedio.
Lo que me gustaría hacer en su lugar es darle un ejemplo de por qué y cómo necesitaba para enviar mensajes de correo electrónico (con archivos adjuntos) utilizando Excel. Esto tal vez podría ser una inspiración para usted para hacer algún proceso con su flujo de trabajo o colegas más eficiente.
Aprendí la fórmula básica de la plantilla de este video de YouTube a continuación.
Explicaré cómo utilicé la plantilla que se detalla en el vídeo anterior, y la utilicé para realizar la tarea que necesitaba automatizar.
Lo que necesitaba que hiciera la macro por mí
Lo que necesitaba hacer era lo siguiente.
Desde una base de datos, puedo descargar informes de ventas por separado para cada país. También puedo descargar los datos (que contiene los visitantes del sitio web, los clientes potenciales y las ventas) en una tabla en Excel.
Abajo está la tabla con los datos (los datos actualmente en allí son todos los números aleatorios generados por la fórmula =RANDBETWEEN()).
Necesitaba una manera de copiar y pegar la tabla en una hoja de Excel, que luego crearía automáticamente correos electrónicos únicos para 23 oficinas de ventas diferentes.
Cada correo electrónico único tendría que resumir el rendimiento de la Oficina de Ventas y tener un archivo adjunto de correo electrónico único.
Terminé con una plantilla de correo electrónico a continuación.
Luego creé una macro VBA en Excel. El texto de la macro está abajo.
Sub Send_email_fromexcel()Dim edress As StringDim subj As StringDim message As StringDim filename As StringDim outlookapp As ObjectDim outlookmailitem As ObjectDim myAttachments As ObjectDim path As StringDim lastcol As IntegerDim attachment As StringDim x As Integer x = 2Do While Sheet7.Cells(2, x) <> "" Set outlookapp = CreateObject("Outlook.Application") Set outlookmailitem = outlookapp.createitem(0) Set myAttachments = outlookmailitem.Attachments path = Sheet7.Cells(5, x) edress = Sheet7.Cells(2, x) cc = Sheet7.Cells(3, x) subj = Sheet7.Cells(4, x) filename = Sheet7.Cells(6, x) attachment = path + filename outlookmailitem.to = edress outlookmailitem.cc = cc outlookmailitem.bcc = "" outlookmailitem.Subject = subj outlookmailitem.body = Sheet7.Cells(7, x) myAttachments.Add (attachment) outlookmailitem.display outlookmailitem.send lastcol = lastcol + 1 edress = "" x = x + 1LoopSet outlookapp = NothingSet outlookmailitem = NothingEnd Sub
He proporcionado la plantilla del archivo de Excel si desea experimentar y practicar el uso del archivo.
Desgraciadamente he tenido que eliminar la macro del archivo, ya que no puedo subir un archivo .xlsm a este sitio de WordPress.
Descarga la plantilla del archivo de Excel
Descarga el archivo de la plantilla haciendo clic en el siguiente enlace:
¡Espero que este post haya sido útil para aquellos interesados en automatizar algunas tareas que involucran a Excel y Outlook!
Mis otras entradas del blog
Si te ha gustado este post puede que disfrutes de estas otras entradas del blog que he escrito.
Soy Michael
Soy un analista digital sudafricano que vive en Toronto, Canadá. Escribo un blog sobre marketing digital, analítica web y visualización de datos.
¡Ponte en contacto conmigo!
LinkedIn
Twitter
Email