Cómo enviar correos electrónicos desde una hoja de cálculo de Excel usando scripts VBA

Cómo enviar correos electrónicos desde una hoja de cálculo de Excel usando scripts VBA

Para enviar correos electrónicos desde Microsoft Excel solo se requieren unos pocos scripts simples. Agregue esta funcionalidad a sus hojas de cálculo y realmente podrá mejorar cuánto puede lograr en Excel.





Hemos cubierto muchas macros excelentes de Excel, que pueden lograr lo mismo 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 en forma de 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 cuando se realicen esas actualizaciones. O puede tener una hoja de cálculo de contactos y desea enviarles un correo electrónico a todos a la vez.



Probablemente esté pensando que programar una transmisión por correo electrónico desde Excel será complicado. Ese no es el caso en absoluto.

La técnica de este artículo hará uso de 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 el envío de correos electrónicos desde los 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: cree 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.

Dibujarlo en la hoja y luego crear una nueva macro para él haciendo clic en Macros en la cinta Desarrollador.

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

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

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

Cuando haces clic OK , tome nota del nombre de la función donde está pegando el script. Lo necesitará 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, el De y Para los campos son obligatorios.

cómo formatear windows 10 con usb
|_+_|

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

Reúna los componentes del mensaje utilizando el & cadena para insertar datos de cualquiera de las hojas de Microsoft Excel directamente en el mensaje de correo electrónico, 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 utilizar SSL, este código avanzado en Github poder ayudar.

|_+_|

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

Así es como se hace:

|_+_|

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

CDO simplemente reúne el correo electrónico y utiliza los detalles de la conexión de su servidor SMTP para enviar el mensaje. Es la forma más sencilla 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 Hoja1 para ver el código VBA para esa hoja de trabajo.

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

mover la carpeta de Google Drive a otra cuenta

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 que se enumeran debajo Con SMTP_Config .

Llévelo más lejos y automatice 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.

Para hacerlo, deberá realizar un cambio en la macro. Vaya al Editor de Visual Basic y copie y pegue 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 en el menú desplegable Métodos.

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

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

A continuación, abre Programador de tareas .

Vas a 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á tu macro, enviando el correo electrónico.

Seleccione Crear tarea básica ... desde el Acción menú y siga su camino a través del asistente hasta que llegue al Acción pantalla.

Seleccione Iniciar un programa y haga clic en próximo .

Utilizar el Navegar 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 ejecutar una prueba programando la acción para un par de minutos en el futuro y luego enmendar 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í, haga clic en Configuración del centro de confianza , y en la siguiente pantalla coloque el dial de radio en Nunca muestre información sobre contenido bloqueado .

Haga que Microsoft Excel funcione para usted

Microsoft Excel es una herramienta increíblemente poderosa, pero aprender a aprovecharla al máximo puede resultar un poco intimidante. Si realmente quiere dominar el software, necesitará estar cómodo con VBA , y esa no es una tarea fácil.

La computadora portátil con Windows 10 no se conecta a wifi

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 seguir adelante.

Un gran lugar para comenzar es nuestra autoridad tutorial sobre el uso de VBA en Excel . Una vez que haya terminado con eso, este sencillo script para enviar correos electrónicos desde Excel se sentirá como un juego de niños.

Cuota Cuota Pío Correo electrónico Canon vs.Nikon: ¿Qué marca de cámara es mejor?

Canon y Nikon son los dos nombres más importantes de la industria de las cámaras. Pero, ¿qué marca ofrece la mejor gama de cámaras y lentes?

Leer siguiente
Temas relacionados
  • Productividad
  • Programación
  • Sugerencias por correo electrónico
  • Programación
  • Programación Visual Basic
  • Microsoft Excel
  • Consejos de Microsoft Office
Sobre el Autor Ryan Dube(942 Artículos publicados)

Ryan tiene una licenciatura en Ingeniería Eléctrica. Ha trabajado 13 años en ingeniería de automatización, 5 años en TI y ahora es ingeniero de aplicaciones. Antiguo editor en jefe de MakeUseOf, ha hablado en conferencias nacionales sobre visualización de datos y ha aparecido en la televisión y la radio nacionales.

Más de Ryan Dube

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse