Saltar al contenido

VBScript – Guardar archivos adjuntos de los correos seleccionados Outlook

El siguiente Script Guarda los archivos adjuntos de una selección de correos en Outlook, no necesariamente tiene que ser en el Inbox.

También te puede interesar VBScript – Guardar Archivos Adjuntos de Correos .MSG Ya Guardados en el Disco Duro o VBScript – Guardar Archivos Adjuntos de Correos .MSG Automaticamente (Guardar adjuntos de correos adjuntos).

Instrucciones de Uso

1.- Copiamos el Codigo al Editor VBA en Outlook (Ver: Utilizar editor VBA en office).

2.- Realizamos una selección de correos con adjuntos el cual deseamos extraer o guardar en nuestro disco (No necesariamente debe ser en el Inbox puede ser cualquier carpeta).outlook-seleccion-de-correos

 

3.- Una vez creado sin cerrar la ventana del Editor VBA presionamos la tecla F5 o damos clic en Run Sub (Ejecutar Fun) Ejecutar - Guardar Archivos Adjuntos de Correos

3.- Al momento de ejecutarse nos aparecerá la ventana  para seleccionar la carpeta donde deseamos guardar los correos (.msg).ruta-guardar-adjuntos-de-correos-adjuntos

 

4.- Una vez seleccionada la carpeta donde se guardaran este procederá a guardar todos los adjuntos

5.- Listo, ya podemos revisar nuestra carpeta con los adjuntos.

Código

Public Sub SaveAttachmentsOfSelectedEmails()

Dim App As New Outlook.Application
Dim Exp As Outlook.Explorer
Dim Sel As Outlook.Selection
Dim objShell As Object
Dim AttachmentCnt As Integer
Dim AttTotal As Integer
Dim MsgTotal As Integer
Dim saveFolder
Dim strSaveFldr As String
Set Exp = App.ActiveExplorer
Set Sel = Exp.Selection
Set objShell = CreateObject("Shell.Application")

Set saveFolder = objShell.BrowseForFolder(0, "Selecciona el Folder para Guardar los Adjuntos", &H400)
If saveFolder Is Nothing Then Exit Sub
strSaveFldr = saveFolder.Items.Item.Path & "\"

'Loop thru each selected item in the inbox
For cnt = 1 To Sel.Count
'If the e-mail has attachments…
    If Sel.Item(cnt).Attachments.Count > 0 Then
        MsgTotal = MsgTotal + 1
        AttTotal = AttTotal + Sel.Item(cnt).Attachments.Count
          'For each attachment on the message…
          For AttachmentCnt = 1 To Sel.Item(cnt).Attachments.Count
            'Get the attachment
                Dim att As Attachment
                Set att = Sel.Item(cnt).Attachments.Item(AttachmentCnt)
               'Save it to disk
               att.SaveAsFile (strSaveFldr & att.FileName)
            Next
    End If
Next

'Clean up
Set Sel = Nothing
Set Exp = Nothing
Set App = Nothing

'Let user know we are done
Dim doneMsg As String
doneMsg = "Completed"

Exit Sub

ErrorHandler:

Dim errMsg As String
errMsg = "An error has occurred."

Dim errResult As VbMsgBoxResult
errResult = MsgBox("Error in Save Attachments")
Select Case errResult
Case vbAbort
Exit Sub
Case vbRetry
Resume
Case vbIgnore
Resume Next
End Select
End Sub

Este código no fue realizado por nosotros, fue encontrado en un foro publicado por un usuario el cual comenta que tampoco el lo desarrollo. (Fuente: Desconocida)

Te recomendamos leer:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Comentarios (11)

Buenas Fernando,

Como puedo imprimir los adjuntos de varios correos?

Me explico: tengo varios correos con adjuntos que no necesito descargarlos sino mas bien imprimirlos. Se puede desde microsoft outlook?

Responder

Buen dia Vianney

Mira tengo este articulo el cual envia los adjuntos a imprimir al momento de recibir el correo (siempre y cuando se cumpla la regla creada) VBScript – Imprimir adjunto automáticamente al momento de recibir un correo en Outlook

o también en Outlook en las opciones de impresión te permite realizar la impresión de adjuntos.

Que tengas excelente dia.

Responder

Hola Fernando,
Me interesaría poder imprimir los archivos adjuntos pudiendo incluir a pie de página o en algún sitio el dato de cuándo se ha recibido ese email (no cuándo lo imprimo, sino el dato de encabezamiento del email que muestra el momento de entrada, aunque imprima los archivos adjuntos varios días después)
Por ejemplo, me envía un proveedor email con 20 facturas y de cara a la Agencia Tributaria me interesa poder saber en el mismo documento impreso en qué momento se recibió esa factura por email.
¿Sabes si es posible?
Gracias

Responder

Buen dia Gemma

Para eso se requiere que el documento tenga la fecha de recepción del correo, no tengo script que te pueda ayudar con esa tarea.
Veo difícil que encuentres algo publicado que lo realice, quizás si buscas un script que te guarde los adjuntos en PDF y al momento de guardar añada la fecha del correo.

Excelente día

Responder

Muy útil y bien explicado, me sirvió mucho! Gracias!!! 🙂

Responder

Muchas gracias Noemi

Me alegra escuchar que te haya sido de utilidad 🙂

Excelente dia.

Responder

Muchas gracias por tu valioso aporte.

Responder

Muy bien Saúl, me alegra saber que te ha servido.

Excelente dia.

Responder

Hola Fernando, yo tengo establecida una regla para que cuando un correo con un documento adjunto cubre con las características le respondo a la persona con una respuesta estandar (con una combinación de teclas), y el correo se manda a un carpeta, cuando ya tengo muchos correos en esa carpeta entonces utilizo la macro que nos compartiste, hay forma de que todo esto se pueda hacer de una sola vez, es decir, que con la combinación de teclas le responda a la persona, mandé el correo a una carpeta específica y descargue el archivo a una carpeta del equipo previamente establecida?
te agradezco mucho
Saludos
Victor Zavaleya

Responder

Buen dia Victor

Este Macro se ejecuta manualmente ya que requiere de una selección de archivos, puedes utilizar alguno de los scipts publicados en el articulo: Guardar automáticamente archivos adjuntos outlook con forme vayan llegando

programarías el archivo automatico de los adjuntos y cuando ejecutes tu regla los adjuntos ya estarán guardados.

Excelente dia.

Responder

Excelente Script!!!! Un abrazo amigo Fer

Responder
Compartir3
Twittear
Compartir
Pin
Más en Outlook VBScript
VBScript – Guardar Archivos Adjuntos de Correos .MSG Ya Guardados en el Disco Duro

VBScript – Guardar Archivos Adjuntos de Correos .MSG Automaticamente (Guardar adjuntos de correos adjuntos)

VBScript – Respaldar o Copiar los Correos de Outlook a una Carpeta en el Disco Duro

Cerrar