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. 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 privacidadHemos 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).
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.
Dibújalo en la hoja y luego crea una nueva macro para él haciendo clic en Macros en la cinta Desarrollador.
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.
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 .
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.
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, 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.
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.
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 .
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.