Nuestra plantilla de código lo ayudará a configurar correos electrónicos automatizados desde Excel utilizando Collaboration Data Objects (CDO) y scripts VBA.

Cómo enviar correos electrónicos desde una hoja de cálculo de Excel utilizando secuencias de comandos VBA

Anuncio Para enviar correos electrónicos 5 formas de escribir correos electrónicos profesionales que ahorran tiempo y esfuerzo 5 formas de escribir correos electrónicos profesionales que ahorran tiempo y esfuerzo Es una habilidad saber cómo escribir correos electrónicos profesionales que ahorran tiempo y obtener respuestas. Dej

Anuncio

Para enviar correos electrónicos 5 formas de escribir correos electrónicos profesionales que ahorran tiempo y esfuerzo 5 formas de escribir correos electrónicos profesionales que ahorran tiempo y esfuerzo Es una habilidad saber cómo escribir correos electrónicos profesionales que ahorran tiempo y obtener respuestas. Deje que estas plantillas de correos electrónicos lo ayuden. Leer más de Microsoft Excel solo requiere unos pocos scripts simples. Agregue esta funcionalidad a sus hojas de cálculo y realmente puede mejorar cuánto puede lograr en Excel.

¡Desbloquee la hoja de trucos "Fórmulas esenciales de Excel" ahora!

Esto lo suscribirá a nuestro boletín

Ingrese su correo electrónico Desbloqueo Lea nuestra política de privacidad

Hemos cubierto muchas macros excelentes de Excel, que pueden lograr las mismas cosas que los scripts de VBA, pero sin la necesidad de conocimientos de programación. Pero hay muchas cosas avanzadas que solo puede hacer con VBA, como crear un informe de hoja de cálculo con toda la información de su PC.

¿Prefieres ver este tutorial como un video? ¡Te tenemos cubierto!

¿Por qué enviar correo electrónico desde Excel?

Hay muchas razones por las que es posible que desee enviar un correo electrónico desde Microsoft Excel.

Tal vez tenga personal que actualice documentos u hojas de cálculo semanalmente, y le gustaría recibir una notificación por correo electrónico sobre cuándo se realizan esas actualizaciones. O bien, puede tener una hoja de cálculo de contactos y desea enviar un correo electrónico a todos a la vez.

Probablemente esté pensando que crear una secuencia de comandos por correo electrónico desde Excel será complicado. Ese no es el caso en absoluto.

La técnica de este artículo utilizará una característica que ha estado disponible en Excel VBA durante mucho tiempo, Collaboration Data Objects (CDO).

objetos de datos de colaboración (CDO) en excel

CDO es un componente de mensajería utilizado en Windows desde las primeras generaciones del sistema operativo. Solía ​​llamarse CDONTS, y luego con el advenimiento de Windows 2000 y XP, fue reemplazado por "CDO para Windows 2000". Este componente ya está incluido en su instalación de VBA dentro de Microsoft Word o Excel y está listo para usar.

El uso del componente hace que enviar correos electrónicos desde productos de Windows con VBA sea extremadamente fácil. En este ejemplo, usará el componente CDO en Excel para enviar un correo electrónico que entregará los resultados de una celda específica de Excel.

Paso 1: crear una macro VBA

El primer paso es ir a la pestaña Desarrollador de Excel.

Dentro de la pestaña Desarrollador, haga clic en Insertar en el cuadro Controles y luego seleccione un botón de comando.

agregar botón en excel

Dibújalo en la hoja y luego crea una nueva macro para él haciendo clic en Macros en la cinta Desarrollador.

agregar macro para el botón de comando

Cuando haces clic en el botón Crear, se abrirá el editor de VBA.

Agregue la referencia a la biblioteca de CDO navegando a Herramientas > Referencias en el editor.

agregando referencias en excel

Desplácese hacia abajo en la lista hasta que encuentre Microsoft CDO para la Biblioteca de Windows 2000 . Marque la casilla de verificación y haga clic en Aceptar .

agregar cdo para referencia de windows

Cuando haga clic en Aceptar, tome nota del nombre de la función donde está pegando el script. Lo necesitarás más tarde.

Paso 2: Configure los campos CDO "Desde" y "Hasta"

Para hacer esto, primero debe crear los objetos de correo y configurar todos los campos necesarios para enviar el correo electrónico.

Tenga en cuenta que si bien muchos de los campos son opcionales, los campos Desde y Hasta son obligatorios.

 Dim CDO_Mail As Object Dim CDO_Config As Object Dim SMTP_Config As Variant Dim strSubject As String Dim strFrom As String Dim strTo As String Dim strCc As String Dim strBcc As String Dim strBody As String strSubject = "Results from Excel Spreadsheet" strFrom = " " strTo = " " strCc = "" strBcc = "" strBody = "The total results for this quarter are: " & Str(Sheet1.Cells(2, 1)) 

Lo bueno de esto es que puede crear cualquier cadena que desee personalizar un mensaje de correo electrónico completo y asignarlo a la variable strBody .

Reúna los componentes del mensaje utilizando la cadena & para insertar datos de cualquiera de las hojas de Microsoft Excel directamente en el mensaje de correo electrónico, tal como se muestra arriba.

Paso 3: Configurar CDO para usar un SMTP externo

La siguiente sección de código es donde configurará CDO para usar cualquier servidor SMTP externo para enviar el correo electrónico.

Este ejemplo es una configuración no SSL a través de Gmail. CDO es capaz de SSL, pero eso está fuera del alcance de este artículo. Si necesita usar SSL, este código avanzado en Github puede ayudarlo.

 Set CDO_Mail = CreateObject("CDO.Message") On Error GoTo Error_Handling Set CDO_Config = CreateObject("CDO.Configuration") CDO_Config.Load -1 Set SMTP_Config = CDO_Config.Fields With SMTP_Config .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = " " .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Update End With With CDO_Mail Set .Configuration = CDO_Config End With 

Paso 4: Finalice la configuración de CDO

Ahora que ha configurado la conexión al servidor SMTP para enviar el correo electrónico, todo lo que tiene que hacer es completar los campos apropiados para el objeto CDO_Mail y emitir el comando Enviar .

Así es como lo haces:

 CDO_Mail.Subject = strSubject CDO_Mail.From = strFrom CDO_Mail.To = strTo CDO_Mail.TextBody = strBody CDO_Mail.CC = strCc CDO_Mail.BCC = strBcc CDO_Mail.Send Error_Handling: If Err.Description "" Then MsgBox Err.Description 

No habrá cuadros emergentes ni mensajes de alerta de seguridad, lo que puede suceder cuando recurres al uso del objeto de correo de Outlook.

CDO simplemente reúne el correo electrónico y utiliza los detalles de conexión del servidor SMTP para disparar el mensaje. Es la forma más fácil de incorporar el correo electrónico en los scripts de Microsoft Word o Excel VBA.

Para conectar su botón de comando a este script, vaya al editor de código y haga clic en Sheet1 para ver el código VBA para esa hoja de trabajo.

Escriba el nombre de la función donde pegó el script anterior.

conectar el botón de comando al script

Así es como se veía el mensaje que recibí en mi bandeja de entrada:

correo electrónico de Excel recibido

Nota : Si recibe un error que dice: El transporte no pudo conectarse al servidor, asegúrese de haber ingresado el nombre de usuario, la contraseña, el servidor SMTP y el número de puerto correctos en las líneas de código enumeradas debajo de Con SMTP_Config .

Llevarlo más lejos y automatizar todo el proceso

Está muy bien poder enviar correos electrónicos desde Excel con solo tocar un botón. Sin embargo, es posible que desee utilizar esta funcionalidad de forma regular, en cuyo caso tendría sentido automatizar el proceso 5 Recursos para macros de Excel para automatizar sus hojas de cálculo 5 Recursos para macros de Excel para automatizar sus hojas de cálculo ¿Está buscando macros de Excel? Aquí hay cinco sitios que tienen lo que estás buscando. Lee mas .

Para hacerlo, deberá realizar un cambio en la macro. Dirígete al Editor de Visual Basic y copia y pega la totalidad del código que reunimos.

A continuación, seleccione ThisWorkbook de la jerarquía del proyecto .

En los dos campos desplegables en la parte superior de la ventana de código, seleccione Libro de trabajo y seleccione Abrir en el menú desplegable Métodos.

Pegue la secuencia de comandos de correo electrónico anterior en Private Sub Workbook_Open () .

Esto ejecutará la macro cada vez que abra el archivo de Excel.

Pegue la secuencia de comandos de correo electrónico

A continuación, abra el Programador de tareas .

Utilizará esta herramienta para pedirle a Windows que abra la hoja de cálculo automáticamente a intervalos regulares, momento en el que se iniciará su macro y enviará el correo electrónico.

crear tarea básica en el programador de tareas

Seleccione Crear tarea básica ... en el menú Acción y avance a través del asistente hasta llegar a la pantalla Acción .

Seleccione Iniciar un programa y haga clic en Siguiente .

seleccione programador de tareas del programa

Use el botón Examinar para buscar la ubicación de Microsoft Excel en su computadora, o copie y pegue la ruta en el campo Programa / secuencia de comandos .

Luego, ingrese la ruta a su documento de Microsoft Excel en el campo Agregar argumentos .

Complete el asistente y su programación estará en su lugar.

Vale la pena ejecutar una prueba programando la acción Cómo vaciar automáticamente la papelera de reciclaje en un horario y liberar espacio desperdiciado Cómo vaciar automáticamente la papelera de reciclaje en un horario y liberar espacio desperdiciado Si no vacia regularmente el reciclaje Bin, podría estar desperdiciando gigabytes de espacio en tu unidad de datos. Pero ahora Windows 10 puede vaciarlo automáticamente en un horario. Lea más durante un par de minutos en el futuro, luego modifique la tarea una vez que pueda confirmar que está funcionando.

Nota : es posible que deba ajustar la configuración del Centro de confianza para asegurarse de que la macro se ejecute correctamente.

Para hacerlo, abra la hoja de cálculo y navegue hasta Archivo > Opciones > Centro de confianza .

Desde aquí, haga clic en Configuración del Centro de confianza y, en la siguiente pantalla, configure el dial de radio en Nunca mostrar información sobre el contenido bloqueado .

Haga que Microsoft Excel trabaje para usted

Microsoft Excel es una herramienta increíblemente poderosa, pero aprender a sacarle el máximo provecho puede ser un poco intimidante. Si realmente desea dominar el software, deberá sentirse cómodo con VBA, y esa no es una tarea fácil.

Sin embargo, los resultados hablan por sí mismos. Con un poco de experiencia en VBA en su haber, pronto podrá hacer que Microsoft Excel realice tareas básicas automáticamente, dándole más tiempo para concentrarse en asuntos más urgentes.

Se necesita tiempo para adquirir experiencia con VBA, pero pronto verá los frutos de su trabajo si puede mantenerlo.

Un excelente lugar para comenzar es nuestro tutorial autorizado sobre el uso de VBA en Excel. Un tutorial para principiantes sobre cómo escribir macros de VBA en Excel (y por qué debería aprender) Un tutorial para principiantes sobre cómo escribir macros de VBA en Excel (y por qué debería aprender) Si usa Excel regularmente, vale la pena aprender cómo crear macros VBA y obtener acceso a muchas más funciones y capacidades. Lee mas . Una vez que haya terminado con eso, este simple script para enviar correos electrónicos desde Excel se sentirá como un juego de niños.

Explore más sobre: ​​Consejos de correo electrónico, Microsoft Excel, Consejos de Microsoft Office, Programación, Programación de Visual Basic.