Enviar archivo protegido por correo y la contraseña en un segundo correo usando macros en Excel
Algunas empresas piden que sus archivos de Excel que sean enviados por correo tengan contraseña y en un segundo correo, enviar la contraseña. Estos son tema de seguridad que pueden aplicar en tu empresa, aunque también está la opción de compartir los archivos por la nube.
En este video tutorial vamos a desarrollar una macro para guardar un archivo asignándole una contraseña aleatoria. Primero vamos a enviar el archivo protegido, luego en un segundo correo vamos a enviar la contraseña que se le asignó al archivo de manera automática.
Ver Video Enviar archivo protegido y contraseña en dos correos por Outlook
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Antes de comenzar
Primero será necesario que cuentes con Outlook de Office instalado en tu equipo y con mínimo una cuenta de correo configurada.
Aquí más tutoriales para enviar emails desde Excel.
La macro que te regalaré es recomendable que esté alojada en el Libro de macros personal, para que cuando se ejecute, se guarde con contraseña el archivo activo y en un seguro correo se envíe el password.
Si no tienes el Libro PERSONAL activado, te sugiero activarlo siguiendo los siguientes pasos:
- Pestaña Vista.
- En la sección Macros elegimos Grabar macro.
- En Guardar macro en vamos a elegir Libro de macros personal.
No es necesario grabar pasos. En la misma Pestaña Vista puedes detener la grabación y ya se habrá creado el archivo PERSONAL. Sólo entras al VBE de Visual Basic y en el archivo PERSONAL insertas un nuevo Módulo.
Importante. Debes activar la referencia a Microsoft Outlook object library, entrando desde el IDE de VBA al menú Herramientas y elegir Referencias.
Primer correo con el archivo protegido con contraseña
La macro lo primero que hará es guardar una copia del archivo activo en un ruta temporal y le asignará una contraseña que se generará de manera automática usando una función.
Figura 1. Enviar por correo archivo de Excel protegido con contraseña.
Segundo correo con la contraseña
En la segunda parte de la macro generaremos una contraseña con una función que desarrollé, donde le indicamos el largo de la contraseña y se genera una secuencia de caracteres aleatorios. Ese mismo password se le asignará al archivo de Excel, además de que irá escrita en el cuerpo del segundo correo.
Figura 2. En un segundo correo enviamos la contraseña del archivo de Excel.
Código VBA de macros
'EXCELeINFO 'MVP Sergio Alejandro Campos 'http://www.exceleinfo.com 'https://www.youtube.com/user/sergioacamposh Sub EnviarEmailPassword() Dim Correos As String Dim Contraseña As String Dim RutaTemporal As String Dim NombreArchivo As String Dim OutlookApp As Outlook.Application Dim OItem As Outlook.MailItem Correos = "sergioacamposh@hotmail.com" Contraseña = PassAleatorio(5) RutaTemporal = VBA.Environ("temp") & "\" NombreArchivo = RutaTemporal & "Archivo con password.xlsm" ActiveWorkbook.SaveAs NombreArchivo, xlOpenXMLWorkbookMacroEnabled, Contraseña Set OutlookApp = New Outlook.Application Set OItem = OutlookApp.CreateItem(olMailItem) With OItem .To = Correos .Subject = "Envío reporte con contraseña" .Body = "Se envía correo correspondiente a las ventas de..." .Attachments.Add NombreArchivo .Send End With Set OItem = OutlookApp.CreateItem(olMailItem) With OItem .To = Correos .Subject = "Envío contraseña" .Body = "Se envía contreaseña: " & Contraseña .Send End With ActiveWorkbook.Close SaveChanges:=False VBA.Kill NombreArchivo End Sub Function PassAleatorio(Cantidad As Integer) Dim i As Integer ' 'Usar siempre en una UDF Application.Volatile ' 'Declaramos variables Dim Valor As Variant Dim Valor1 As Variant ' Valor1 = Null ' 'Recorremos de 1 a la Cantidad especificada en el parámetro Cantidad For i = 1 To Cantidad ' Valor = Chr(Application.WorksheetFunction.RandBetween(48, 90)) ' Valor1 = Valor1 & Valor ' Next i ' 'Asignamos a la función los caractere concatenados. PassAleatorio = Valor1 ' End Function
Descarga el archivo de ejemplo
Enviar archivo adjunto por email y contraseña en otro correo – EXCELeINFO.zip
Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.