Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Enviar un correo a una lista de contactos

| 3 comentarios

El envío frecuente de correos a una lista de contactos  por campaña publicitaria, comunicar una nueva norma en el trabajo o la convocatoria a la reunión semanal de un comité o una junta de vecinos, se puede realizar en el menor tiempo posible si automatizamos el procedimiento utilizando la macro con el siguiente código en VBA con la ayuda del Excel:

Sub correomasivo()
'Paso 1: Declarar las variables
Dim OLApp As Outlook.Application
Dim OLMail As Object
Dim MyCell As Range
Dim Mycontacs As Range
'Paso 2: Definir el rango donde se encuentran los contactos
Set MyContacts = Sheets("contactos").Range("E2:E40")
'Paso 3: Abrir Outlook
Set OLApp = New Outlook.Application
Set OLMail = OLApp.CreateItem(0)
OLApp.Session.Logon
'Paso 4: Ingresar cada dirección de correo
With OLMail
For Each MyCell In MyContacts
.BCC = .BCC & Chr(59) & MyCell.Value
Next MyCell
.Subject = "Reunión Urgente"
.Body = "Acuerdo sobre la cuota que se debe pagar por motivos de mantenimiento del edificio"
.Attachments.Add ActiveWorkbook.FullName
.Display
End With
'Paso 5: Liberar memoria
Set OLMail = Nothing
Set OLApp = Nothing
End Sub

Paso N° 1

La mayoria de empresas utilizan el Outlook como software de comunicación interna y externa mediante correos electrónicos, por lo que antes de todo se debe activar la referencia Microsoft.Outlook.15.0.Object.Library en el módulo VBA

 

Paso N° 2

Tener una lista de tus contactos en una  hoja excel.

5.1

(Para mayor visualización de la imagen, hacer click en la misma)

Paso N° 3

En el módulo VBA insertar un nuevo módulo y copiar el código, que se detalló lineas arriba.

5.4

(Para mayor visualización de la imagen, hacer click en la misma)

Paso N° 4

Correr la macro, enviará el correo a la lista de contactos de la hoja "contactos" y a las direcciones de correo del rango "E2:E40"

Set MyContacts = Sheets("contactos").Range("E2:E40")

Con el Título: "Reunión Urgente"

Subject = "Reunión Urgente"

Y con el contenido: "Acuerdo sobre la cuota que se debe pagar por motivos de mantenimiento del edificio"
.Body = "Acuerdo sobre la cuota que se debe pagar por motivos de mantenimiento del edificio"

Lo cual podrá ser modificado a elección del usuario.

El archivo:  Enviar correo a lista de contactos

3 comentarios

  1. muchas gracias, me fue de mucha utilidad!

  2. muy bueno de mucha utilidad!!

  3. requiero algo que me automatice mi macro

Deja una respuesta

Los campos requeridos estan marcados con *.