Skip to main content

¿Cómo guardar todos los archivos adjuntos de varios correos electrónicos en una carpeta en Outlook?

Author: Siluvia Last Modified: 2025-08-06

Es fácil guardar todos los archivos adjuntos de un correo electrónico con la función incorporada Guardar todos los archivos adjuntos en Outlook. Sin embargo, si desea guardar todos los archivos adjuntos de varios correos electrónicos a la vez, no hay una función directa que pueda ayudar. Necesitará aplicar repetidamente la función Guardar todos los archivos adjuntos en cada correo electrónico hasta que se guarden todos los archivos adjuntos de esos correos. Esto es muy lento. En este artículo, presentamos dos métodos para que pueda guardar masivamente todos los archivos adjuntos de varios correos electrónicos en una carpeta específica fácilmente en Outlook.

Guardar todos los archivos adjuntos de varios correos electrónicos en una carpeta con código VBA
Varios clics para guardar todos los archivos adjuntos de múltiples correos electrónicos en una carpeta con una herramienta increíble


Guardar todos los archivos adjuntos de varios correos electrónicos en una carpeta con código VBA

Esta sección demuestra un código VBA paso a paso para ayudarlo a guardar rápidamente todos los archivos adjuntos de varios correos electrónicos en una carpeta específica de una sola vez. Por favor, siga los siguientes pasos.

1. Primero, necesita crear una carpeta para guardar los archivos adjuntos en su computadora.

Entre en la carpeta "Documentos" y cree una carpeta llamada "Adjuntos". Ver captura de pantalla:

save attachments by vba 1

2. Seleccione los correos electrónicos cuyos archivos adjuntos desea guardar, y luego presione las teclas "Alt" + "F11" para abrir la ventana "Microsoft Visual Basic para Aplicaciones".

3. Haga clic en "Insertar" > "Módulo" para abrir la ventana "Módulo", y luego copie uno de los siguientes códigos VBA en la ventana.

Código VBA 1: Guardado masivo de archivos adjuntos de varios correos electrónicos (guardar archivos adjuntos con el mismo nombre exacto directamente)

Nota: Este código guardará archivos adjuntos con el mismo nombre exacto agregando dígitos 1, 2, 3... después de los nombres de archivo.

Dim GCount As Integer
Dim GFilepath As String
Public Sub SaveAttachments()
'Update 20200821
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
Dim xSelection As Outlook.Selection
Dim i As Long
Dim xAttCount As Long
Dim xFilePath As String, xFolderPath As String, xSaveFiles As String
On Error Resume Next
xFolderPath = CreateObject("WScript.Shell").SpecialFolders(16)
Set xSelection = Outlook.Application.ActiveExplorer.Selection
xFolderPath = xFolderPath & "\Attachments\"
If VBA.Dir(xFolderPath, vbDirectory) = vbNullString Then
    VBA.MkDir xFolderPath
End If
GFilepath = ""
For Each xMailItem In xSelection
    Set xAttachments = xMailItem.Attachments
    xAttCount = xAttachments.Count
    xSaveFiles = ""
    If xAttCount > 0 Then
        For i = xAttCount To 1 Step -1
            GCount = 0
            xFilePath = xFolderPath & xAttachments.Item(i).FileName
            GFilepath = xFilePath
            xFilePath = FileRename(xFilePath)
            If IsEmbeddedAttachment(xAttachments.Item(i)) = False Then
                xAttachments.Item(i).SaveAsFile xFilePath
                If xMailItem.BodyFormat <> olFormatHTML Then
                    xSaveFiles = xSaveFiles & vbCrLf & "<Error! Hyperlink reference not valid.>"
                Else
                    xSaveFiles = xSaveFiles & "<br>" & "<a href='file://" & xFilePath & "'>" & xFilePath & "</a>"
                End If
            End If
        Next i
    End If
Next
Set xAttachments = Nothing
Set xMailItem = Nothing
Set xSelection = Nothing
End Sub

Function FileRename(FilePath As String) As String
Dim xPath As String
Dim xFso As FileSystemObject
On Error Resume Next
Set xFso = CreateObject("Scripting.FileSystemObject")
xPath = FilePath
FileRename = xPath
If xFso.FileExists(xPath) Then
    GCount = GCount + 1
    xPath = xFso.GetParentFolderName(GFilepath) & "\" & xFso.GetBaseName(GFilepath) & " " & GCount & "." + xFso.GetExtensionName(GFilepath)
    FileRename = FileRename(xPath)
End If
xFso = Nothing
End Function

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

Código VBA 2: Guardado masivo de archivos adjuntos de varios correos electrónicos (verificar duplicados)
Public Sub SaveAttachments()
'Update 20200821
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
Dim xSelection As Outlook.Selection
Dim i As Long
Dim xAttCount As Long
Dim xFilePath As String, xFolderPath As String, xSaveFiles As String
Dim xYesNo As Integer
Dim xFlag As Boolean
On Error Resume Next
xFolderPath = CreateObject("WScript.Shell").SpecialFolders(16)
Set xSelection = Outlook.Application.ActiveExplorer.Selection
xFolderPath = xFolderPath & "\Attachments\"
If VBA.Dir(xFolderPath, vbDirectory) = vbNullString Then
    VBA.MkDir xFolderPath
End If
For Each xMailItem In xSelection
    Set xAttachments = xMailItem.Attachments
    xAttCount = xAttachments.Count
    xSaveFiles = ""
    If xAttCount > 0 Then
        For i = xAttCount To 1 Step -1
            xFilePath = xFolderPath & xAttachments.Item(i).FileName
            xFlag = True
            If VBA.Dir(xFilePath, 16) <> Empty Then
                xYesNo = MsgBox("The file is exists, do you want to replace it", vbYesNo + vbInformation, "Kutools for Outlook")
                If xYesNo = vbNo Then xFlag = False
            End If
            If xFlag = True Then
                xAttachments.Item(i).SaveAsFile xFilePath
                If xMailItem.BodyFormat <> olFormatHTML Then
                    xSaveFiles = xSaveFiles & vbCrLf & "<Error! Hyperlink reference not valid.>"
                Else
                    xSaveFiles = xSaveFiles & "<br>" & "<a href='file://" & xFilePath & "'>" & xFilePath & "</a>"
                End If
            End If
        Next i
    End If
Next
Set xAttachments = Nothing
Set xMailItem = Nothing
Set xSelection = Nothing
End Sub

save attachments by vba 2

Notas:

1) Si desea guardar todos los archivos adjuntos con el mismo nombre en una carpeta, aplique el "Código VBA 1" anterior. Antes de ejecutar este código, haga clic en "Herramientas" > "Referencias", y luego marque la casilla "Microsoft Scripting Runtime" en el cuadro de diálogo "Referencias - Proyecto".
save attachments by vba 3
2) Si desea verificar nombres de archivos adjuntos duplicados, aplique el "Código VBA 2". Después de ejecutar el código, aparecerá un cuadro de diálogo para recordarle si desea reemplazar los archivos adjuntos duplicados; elija "Sí" o "No" según sus necesidades.

5. Presione la tecla "F5" para ejecutar el código.

Luego, todos los archivos adjuntos en los correos electrónicos seleccionados se guardarán en la carpeta que creó en el paso 1.

Notas: Puede aparecer un cuadro de mensaje de "Microsoft Outlook"; por favor, haga clic en el botón "Permitir" para continuar.


Guardar todos los archivos adjuntos de varios correos electrónicos en una carpeta con una herramienta increíble

Si es nuevo en VBA, aquí recomendamos encarecidamente la utilidad "Guardar todos los archivos adjuntos" de "Kutools para Outlook". Con esta utilidad, puede guardar rápidamente todos los archivos adjuntos de varios correos electrónicos a la vez con solo unos pocos clics en Outlook.

¡Desbloquea la máxima eficiencia en el correo electrónico con Kutools para Outlook! Accede a 70 funciones poderosas completamente gratis, para siempre. ¡Descarga la versión gratuita ahora!

1. Seleccione los correos electrónicos que contienen los archivos adjuntos que desea guardar.

Nota: Puede seleccionar varios correos electrónicos no adyacentes manteniendo presionada la tecla "Ctrl" y seleccionándolos uno por uno;
O seleccione varios correos electrónicos adyacentes manteniendo presionada la tecla "Shift" y seleccionando el primer correo electrónico y el último.

2. Haga clic en "Kutools Plus" > "Herramientas de archivos adjuntos" > "Guardar todo". Ver captura de pantalla:

3. En el cuadro de diálogo "Configuración de guardado", haga clic en el option button botón para seleccionar una carpeta donde guardar los archivos adjuntos, y luego haga clic en el botón "Aceptar".

save attachments by kutools for outlook 1

4. Haga clic en "Aceptar" dos veces en los cuadros de diálogo emergentes siguientes. Luego, todos los archivos adjuntos en los correos electrónicos seleccionados se guardarán en la carpeta especificada de una vez.

Notas:

  • 1. Si desea guardar archivos adjuntos en diferentes carpetas según los correos electrónicos, marque la casilla "Crear subcarpetas en el siguiente estilo" y elija un estilo de carpeta del menú desplegable.
  • 2. Además de guardar todos los archivos adjuntos, puede guardar archivos adjuntos según condiciones específicas. Por ejemplo, si solo desea guardar los archivos adjuntos PDF cuyo nombre de archivo contiene la palabra "Factura", haga clic en el botón "Opciones avanzadas" para expandir las condiciones, y luego configure como se muestra a continuación.
  • 3. Si desea guardar automáticamente los archivos adjuntos cuando lleguen los correos electrónicos, la función Guardar automáticamente los archivos adjuntos puede ayudar.
  • 4. Para separar los archivos adjuntos directamente de los correos electrónicos seleccionados, la función Desvincular todos los archivos adjuntos de "Kutools para Outlook" puede hacerle un favor.

Artículos relacionados

Insertar archivos adjuntos en el cuerpo del mensaje de correo electrónico en Outlook
Normalmente, los archivos adjuntos se muestran en el campo Adjuntos en un correo electrónico en redacción. Aquí, este tutorial proporciona métodos para ayudarlo a insertar fácilmente archivos adjuntos en el cuerpo del correo electrónico en Outlook.

Descargar/guardar automáticamente archivos adjuntos desde Outlook a una carpeta específica
En general, puede guardar todos los archivos adjuntos de un correo electrónico haciendo clic en Archivos adjuntos > Guardar todos los archivos adjuntos en Outlook. Pero, si necesita guardar todos los archivos adjuntos de todos los correos electrónicos recibidos y recibiendo, ¿alguna idea? Este artículo presentará dos soluciones para descargar automáticamente archivos adjuntos desde Outlook a una carpeta específica.

Imprimir todos los archivos adjuntos en uno/varios correos electrónicos en Outlook
Como sabe, al hacer clic en Archivo > Imprimir en Microsoft Outlook, solo imprimirá el contenido del correo electrónico, como encabezado, cuerpo, pero no los archivos adjuntos. Aquí le mostraremos cómo imprimir fácilmente todos los archivos adjuntos en un correo electrónico seleccionado en Microsoft Outlook.

Buscar palabras dentro del contenido del archivo adjunto en Outlook
Cuando escribimos una palabra clave en el cuadro de Búsqueda instantánea en Outlook, buscará la palabra clave en los asuntos, cuerpos, archivos adjuntos, etc., de los correos electrónicos. Pero ahora solo necesito buscar la palabra clave en el contenido del archivo adjunto en Outlook, ¿alguna idea? Este artículo le muestra los pasos detallados para buscar palabras dentro del contenido del archivo adjunto en Outlook fácilmente.

Mantener archivos adjuntos al responder en Outlook
Cuando reenviamos un mensaje de correo electrónico en Microsoft Outlook, los archivos adjuntos originales en este mensaje de correo electrónico permanecen en el mensaje reenviado. Sin embargo, cuando respondemos a un mensaje de correo electrónico, los archivos adjuntos originales no se adjuntarán en el nuevo mensaje de respuesta. Aquí vamos a introducir algunos trucos sobre cómo mantener los archivos adjuntos originales al responder en Microsoft Outlook.


Las mejores herramientas de productividad para Office

Últimas noticias: ¡Kutools para Outlook lanza una versión gratuita!

¡Descubre el nuevo Kutools para Outlook con más de100 funciones increíbles! ¡Haz clic para descargarlo ahora!

🤖 Kutools AI : Utiliza tecnología avanzada de IA para gestionar correos electrónicos sin esfuerzo, como responder, resumir, optimizar, ampliar, traducir y redactar mensajes.

📧 Automatización de Email: Respuesta automática (disponible para POP e IMAP) / Programar envío de correos electrónicos / CC/BCC automático por regla al enviar correo / Reenvío automático (Regla avanzada) / Agregar saludo automáticamente / Dividir automáticamente correos con varios destinatarios en mensajes individuales ...

📨 Gestión de Email: Recuperar correos electrónicos / Bloquear correos sospechosos por asunto y otros criterios / Eliminar correos electrónicos duplicados / Búsqueda Avanzada / Organizar carpetas ...

📁 Adjuntos Pro: Guardar en lote / Desanexar en lote / Comprimir en lote / Guardar automáticamente / Desconectar automáticamente / Auto Comprimir ...

🌟 Magia de la Interfaz: 😊Más emojis atractivos y geniales / Recibe avisos cuando lleguen emails importantes / Minimiza Outlook en vez de cerrarlo ...

👍 Funciones de un solo clic: Responder a Todos con Adjuntos / Correos electrónicos Anti-Phishing / 🕘Mostrar la zona horaria del remitente ...

👩🏼‍🤝‍👩🏻 Contactos y Calendario: Agregar en lote contactos de correos seleccionados / Dividir un grupo de contactos en grupos individuales / Eliminar recordatorio de cumpleaños ...

Utiliza Kutools en tu idioma preferido; ¡compatible con Inglés, Español, Alemán, Francés, Chino y más de40 idiomas adicionales!

Desbloquea Kutools para Outlook al instante con un solo clic. ¡No esperes más, descárgalo ahora y aumenta tu productividad!

kutools for outlook features1 kutools for outlook features2