Este Truco de Excel Envía CIENTOS de PDFs con Contraseña Automáticamente

Ya en otros videos de este canal hemos visto cómo mandar mensajes masivos por correo desde Excel adjuntando archivos PDF, pero en este vamos todavía más allá. Imagina que quieres enviar correos masivos desde Excel, pero adjuntando un PDF de nómina, factura o un reporte de ventas. Como es información sensible, quieres que ese PDF tenga contraseña. Eso es justo lo que vamos a lograr aquí: mandar mensajes masivos desde Excel por correo, adjuntando un PDF encriptado con contraseña.

🎓 Certificación oficial Microsoft

¿Ya dominas Excel, pero falta un documento que lo certifique? Como centro autorizado Certiport, te preparamos para que apruebes el Examen Oficial MO-211.

CONOCE LA CERTIFICACIÓN EXCEL EXPERT

Cómo Enviar Emails Masivos desde Excel con PDFs Protegidos por Contraseña


🎁 Descarga los archivos de ejemplo

Escribe tu correo electrónico para recibir gratis el archivo para practicar.


El contexto: qué vamos a lograr

Enviar archivos PDF con contraseña desde Excel.
imagen 1. Enviar archivos PDF con contraseña desde Excel.

Tengo una tabla de empleados llamada tblEmpleados con nombre, RFC (ojo, son datos ficticios), correo, puesto, periodo, sueldo base, bonos y demás. En la columna Estatus se marca cuando ya mandaste esa nómina — por ejemplo, “Pendiente” para las que faltan por enviar. En la hoja Plantilla tengo el formato de la nómina que vamos a mandar por correo, pero adjunto en PDF y con contraseña, porque es un dato que solamente el empleado debe conocer.

Este formato es de nómina, pero puede ser lo que tú quieras: una factura, una tabla de ventas, cualquier dato sensible que necesites encriptar con contraseña. La macro recorre cada uno de los nombres de la tabla, los va poniendo en la plantilla, y los datos se regresan con fórmulas que jalan la información de la tabla.

Así llega el correo: en el cuerpo viene el resumen de percepciones y deducciones, y adjunto viene el PDF encriptado. Al abrirlo, pide contraseña — en este ejemplo, los últimos cuatro dígitos del RFC del empleado. Esto lo puedes controlar como quieras dentro de la macro.

Preparando la plantilla para imprimir

Antes de tocar la macro, hay que dejar lista la hoja Plantilla. Si te vas a Archivo > Imprimir vas a ver que se imprime con datos que no quieres mostrar (como el nombre suelto arriba). Para corregirlo: seleccionas desde el encabezado hasta la firma del empleado, te vas a Disposición de Página > Área de Impresión > Establecer Área de Impresión. Luego, en Configurar Página > Márgenes, activas “Horizontalmente” para centrar el contenido. Así, cada vez que se mande a imprimir (en papel o PDF), va a salir tal cual el formato, sin datos de más.

Las dos macros que hacen el trabajo

En el editor de Visual Basic tenemos dos macros: Enviar Recibos Nómina Encriptados (Módulo 1) y Encriptar PDF (Módulo 2).

Aquí voy a ser honesto: tardé bastante en llegar a este resultado, y sí usé IA para armarlo. La idea fue mía, incluso le di a la IA algunas ideas y códigos que yo ya había usado antes. Y la razón por la que pude entender el código y trabajar bien con la IA es porque ya sabía de macros. Actualmente mucha gente simplemente le pide a la IA “hazme esto” y ya — pero si tienes el conocimiento de macros, es mucho más fácil saber qué pedir, cómo corregir, e incluso darle ideas tú a ella. Ese conocimiento es justo lo que enseño en mis cursos de Deztaca, donde tenemos macros de cero a avanzado.

Lo que necesitas antes de correr la macro

La función Encriptar PDF depende de una aplicación externa llamada qpdf, que le pone contraseña al PDF (la otra opción sería Adobe Acrobat con licencia). qpdf es gratuita: buscas “qpdf releases” en tu buscador, entras al repositorio de GitHub y descargas el archivo correspondiente a 64 bits en formato zip. Dentro del zip vienen varias carpetas — la que importa es bin, donde está el ejecutable. Esas carpetas las mueves a una carpeta nueva en tu unidad C, por ejemplo C:\qpdf. En la macro Encriptar PDF, esa es justo la ruta desde donde se manda llamar la aplicación.

Cómo corre la macro paso a paso

La macro Enviar Recibos Nómina Encriptados define primero las variables necesarias: la hoja Plantilla, la tabla de Control, y dos variables para conectarse con Outlook (necesitas Outlook clásico configurado, con cualquier cuenta de Microsoft 365 o Gmail Empresarial). Luego crea la carpeta “PDFs” si no existe, y crea el objeto de la aplicación de Outlook.

Con un ciclo For Each recorre cada fila de la tabla de empleados y guarda los valores (nombre, correo, estatus, periodo, RFC, sueldo, bonos, IMSS, ISR, otras deducciones y neto) en variables — esto es clave porque esos mismos datos se usan después para armar el cuerpo del correo. Valida que el estatus sea distinto a “Enviado”, escribe el nombre en la celda A2 de la Plantilla, recalcula la hoja, y exporta el PDF con ExportAsFixedFormat — lo mismo que harías manualmente con Guardar Como > PDF.

Antes de encriptar, valida con Len que el RFC tenga al menos cuatro dígitos (si no, no podría sacar la contraseña). Con eso asignado, llama a la función Encriptar PDF, que ubica la ruta de qpdf, define una ruta temporal y un archivo log por si algo sale mal, y crea un objeto WScript.Shell — un objeto de Windows, no de VBA, que sirve para mandar llamar aplicaciones externas. Con ese objeto se ejecuta el comando que encripta el PDF con la contraseña, genera el archivo temporal, y borra los archivos que ya no se necesitan.

De regreso en la macro principal, se arma el cuerpo del correo con HTMLBody (si no conoces las etiquetas HTML como body, p o tr, puedes pedirle a una IA que te dé el código — pero para pedirlo bien, ayuda que entiendas el proceso). Se crea el correo con Outlook, se le asigna el destinatario, el asunto, el cuerpo en HTML, se adjunta el PDF ya con contraseña, y se manda con .Send. Al terminar, la columna Estatus se actualiza a “Enviado” y la macro sigue con el siguiente empleado.

El resultado

Al abrir el correo recibido, viene el resumen de la nómina en el cuerpo y el PDF adjunto pidiendo contraseña — los últimos cuatro dígitos del RFC del empleado. Puedes tener una tabla con tantos empleados como necesites; el único cuidado es no mandar miles de correos de golpe para que no te bloqueen o lo marquen como spam. Los que ya digan “Enviado” no se vuelven a mandar; cualquier otro estatus sí entra al proceso.

Para cerrar

Configurar esto la primera vez puede ser un poco complicado, porque hay que saber implementar la macro, descargar las aplicaciones necesarias y entender lo básico de HTML. Y aquí va lo importante: aunque parezca que la IA hace magia, no la hace. Si le pides algo, te lo va a dar, pero cuando tu proyecto crezca o necesite mantenimiento, a la IA se le va a olvidar el contexto. Tú tienes que ser capaz de entender qué está pasando y tener el criterio para saber cuándo usar algo y cuándo no — esa decisión siempre es tuya.

La macro completa está disponible en el archivo adjunto.

🎓 Deztaca

Aprende Excel, Macros, Power BI y análisis de datos a fondo, con cursos desde todos los niveles, clases en vivo todas las semana, Certificado por curso y un Foro de comunidad para resolver todas tus dudas.

MIRA NUESTROS CURSOS

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top