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

  • Owen Little
  • 0
  • 4510
  • 532
Anuncio

Enviar correos electrónicos desde 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.

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 correos electrónicos 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 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 función que ha estado disponible en Excel VBA durante mucho tiempo, Objetos de datos de colaboración (CDO).

CDO es un componente de mensajería utilizado en Windows desde las primeras generaciones del sistema operativo. Solía ​​llamarse CDONTS, y luego con la llegada 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.

Dibújalo en la hoja y luego crea una nueva macro haciendo clic en Macros en la cinta de desarrollador.

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

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

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 Okay.

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

Paso 2: configurar el CDO “Desde” y “A” Campos

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, el Desde y A los campos 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 = "Resultados de la hoja de cálculo Excel" strFrom = "rdube02 @ gmail .com "strTo =" [email protected] "strCc =" "strBcc =" "strBody =" Los resultados totales para este trimestre son: "& 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 al strBody variable.

Reúna los componentes del mensaje utilizando el Y 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.

Establezca CDO_Mail = CreateObject ("CDO.Message") en caso de error GoTo Error_Handling Establezca CDO_Config = CreateObject ("CDO.Configuration") CDO_Config.Load -1 Establezca SMTP_Config = CDO_Config.Fields With SMTP_Config .Item ("http://schemas.oftm. .com / cdo / configuration / sendusing ") = 2 .Item (" http://schemas.microsoft.com/cdo/configuration/smtpserver ") =" smtp.gmail.com ".Item (" http: // esquemas .microsoft.com / cdo / configuration / smtpauthenticate ") = 1 .Item (" http://schemas.microsoft.com/cdo/configuration/sendusername ") =" [email protected] ".Item (" http: / /schemas.microsoft.com/cdo/configuration/sendpassword ") =" contraseña ".Item (" http://schemas.microsoft.com/cdo/configuration/smtpserverport ") = 25 .Item (" http: // esquemas .microsoft.com / cdo / configuration / smtpusessl ") = Verdadero .Actualizar Finalizar con CDO_Mail Set .Configuration = CDO_Config Finalizar con

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 correspondientes para Objeto CDO_Mail, y emitir el Enviar mando.

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 "" Entonces Descripción.

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 VBA de Microsoft Word o Excel.

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

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

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

Nota: Si recibe un error que dice El transporte no pudo conectarse al servidor, asegúrese de haber ingresado el nombre de usuario, contraseña, servidor SMTP y número de puerto correctos en las líneas de código que figuran debajo 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. .

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 Este libro de trabajo desde el Proyecto jerarquía.

De los dos campos desplegables en la parte superior de la ventana de código, seleccione Libro de trabajo y seleccione Abierto del 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.

Luego, abre 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 cual se iniciará su macro, enviando el correo electrónico.

Seleccionar Crear tarea básica ... desde el Acción menú y avance a través del asistente hasta llegar al Acción pantalla.

Seleccionar Comience un programa y haga clic próximo.

Utilizar el Vistazo para encontrar la ubicación de Microsoft Excel en su computadora, o copie y pegue la ruta en el Programa / guión campo.

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

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

Vale la pena realizar 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. 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 Expediente > Opciones > Centro de confianza.

Desde aquí, haz clic Configuración del centro de confianza, y en la siguiente pantalla configure el dial de radio en Nunca mostrar información sobre 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, lo que le dará más tiempo para concentrarse en asuntos más urgentes..

Se necesita tiempo para desarrollar 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. . 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.




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.