Перейти к содержимому

Как сохранить все вложения из нескольких писем в папку в Outlook?

Author: Siluvia Last Modified: 2025-08-07

Легко сохранить все вложения из одного письма с помощью встроенной функции «Сохранить все вложения» в Outlook. Однако, если вы хотите сохранить все вложения из нескольких писем одновременно, прямой функции для этого нет. Вам нужно будет многократно применять функцию «Сохранить все вложения» к каждому письму, пока не будут сохранены все вложения из этих писем. Это занимает много времени. В этой статье мы представляем два метода, которые позволят вам легко массово сохранить все вложения из нескольких писем в определенную папку в Outlook.

Сохранение всех вложений из нескольких писем в папку с помощью кода VBA
Несколько кликов для сохранения всех вложений из нескольких писем в папку с помощью удивительного инструмента


Сохранение всех вложений из нескольких писем в папку с помощью кода VBA

В этом разделе демонстрируется пошаговое руководство с использованием кода VBA, чтобы помочь вам быстро сохранить все вложения из нескольких писем в определенную папку за один раз. Пожалуйста, следуйте указаниям ниже.

1. Сначала вам нужно создать папку для сохранения вложений на вашем компьютере.

Перейдите в папку «Документы» и создайте папку с названием «Attachments». Смотрите скриншот:

save attachments by vba 1

2. Выберите письма, из которых вы хотите сохранить вложения, а затем нажмите клавиши «Alt» + «F11», чтобы открыть окно «Microsoft Visual Basic for Applications».

3. Нажмите «Вставить» > «Модуль», чтобы открыть окно «Модуль», а затем скопируйте один из следующих кодов VBA в это окно.

Код VBA 1: Массовое сохранение вложений из нескольких писем (сохранение вложений с точно такими же именами напрямую)

Примечание: Этот код сохранит вложения с одинаковыми именами, добавляя цифры 1, 2, 3... после имен файлов.

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

Код VBA 2: Массовое сохранение вложений из нескольких писем (проверка на дубликаты)
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

Примечания:

1) Если вы хотите сохранить все вложения с одинаковыми именами в папке, пожалуйста, используйте вышеуказанный «Код VBA 1». Перед запуском этого кода нажмите «Инструменты» > «Ссылки», а затем отметьте поле «Microsoft Scripting Runtime» в диалоговом окне «Ссылки - Проект».
save attachments by vba 3
2) Если вы хотите проверить наличие дубликатов имен вложений, пожалуйста, используйте «Код VBA 2». После запуска кода появится диалоговое окно, которое спросит вас, хотите ли вы заменить дублирующиеся вложения, выберите «Да» или «Нет» в зависимости от ваших потребностей.

5. Нажмите клавишу «F5», чтобы запустить код.

Затем все вложения из выбранных писем будут сохранены в папку, которую вы создали на шаге 1.

Примечания: Может появиться окно подтверждения «Microsoft Outlook», пожалуйста, нажмите кнопку «Разрешить», чтобы продолжить.


Сохранение всех вложений из нескольких писем в папку с помощью удивительного инструмента

Если вы новичок в VBA, здесь настоятельно рекомендуется использовать утилиту «Сохранить все вложения» из «Kutools для Outlook». С помощью этой утилиты вы можете быстро сохранить все вложения из нескольких писем всего несколькими щелчками мыши в Outlook.

Раскройте максимальную эффективность электронной почты с Kutools для Outlook! Получите доступ к 70 мощным функциям абсолютно бесплатно навсегда. Скачайте бесплатную версию прямо сейчас!

1. Выберите письма, содержащие вложения, которые вы хотите сохранить.

Примечание: Вы можете выбрать несколько несмежных писем, удерживая клавишу «Ctrl» и выбирая их по одному;
Или выберите несколько смежных писем, удерживая клавишу «Shift» и выбрав первое и последнее письмо.

2. Нажмите «Kutools Plus» > «Инструменты вложений» > «Сохранить все». Смотрите скриншот:

3. В диалоговом окне «Настройки сохранения» нажмите option button кнопку, чтобы выбрать папку для сохранения вложений, а затем нажмите кнопку «ОК».

save attachments by kutools for outlook 1

4. Нажмите «ОК» дважды в следующих появляющихся диалоговых окнах. Затем все вложения из выбранных писем будут сохранены в указанной папке сразу.

Примечания:

  • 1. Если вы хотите сохранить вложения в разных папках на основе писем, отметьте поле «Создать подпапки в следующем стиле» и выберите стиль папки из выпадающего списка.
  • 2. Помимо сохранения всех вложений, вы можете сохранять вложения по определенным условиям. Например, если вы хотите сохранить только PDF-файлы, содержащие слово «Invoice» в имени файла, нажмите кнопку «Дополнительные параметры», чтобы расширить условия, и настройте как показано ниже.
  • 3. Если вы хотите автоматически сохранять вложения при получении писем, функция Автосохранение вложений может помочь.
  • 4. Для открепления вложений непосредственно из выбранных писем функция Отсоединить все вложения из «Kutools для Outlook» может оказать вам помощь.

Связанные статьи

Вставка вложений в тело сообщения электронной почты в Outlook
Обычно вложения отображаются в поле Вложенные файлы в составляемом письме. Здесь это руководство предоставляет методы, которые помогут вам легко вставить вложения в тело письма в Outlook.

Автоматическая загрузка/сохранение вложений из Outlook в определенную папку
Как правило, вы можете сохранить все вложения одного письма, нажав Вложения > Сохранить все вложения в Outlook. Но если вам нужно сохранить все вложения из всех полученных и входящих писем, есть идея? Эта статья представит два решения для автоматической загрузки вложений из Outlook в определенную папку.

Печать всех вложений в одном/нескольких письмах в Outlook
Как вы знаете, при нажатии Файл > Печать в Microsoft Outlook печатаются только содержимое письма, такие как заголовок, текст, но не вложения. Здесь мы покажем вам, как легко напечатать все вложения в выбранном письме в Microsoft Outlook.

Поиск слов внутри вложения (содержимого) в Outlook
Когда мы вводим ключевое слово в поле мгновенного поиска в Outlook, он ищет ключевое слово в темах писем, текстах, вложениях и т.д. Но теперь мне нужно искать ключевое слово только в содержимом вложений в Outlook, есть идеи? Эта статья показывает подробные шаги для поиска слов внутри содержимого вложений в Outlook.

Сохранение вложений при ответе в Outlook
Когда мы пересылаем сообщение электронной почты в Microsoft Outlook, оригинальные вложения в этом сообщении остаются в пересланном сообщении. Однако, когда мы отвечаем на сообщение электронной почты, оригинальные вложения не будут прикреплены в новом ответном сообщении. Здесь мы собираемся представить пару трюков о том, как сохранить оригинальные вложения при ответе в Microsoft Outlook.


Лучшие инструменты для повышения продуктивности в Office

Срочные новости: Выпущена бесплатная версия Kutools для Outlook!

Оцените совершенно новый Kutools для Outlook с более чем100 потрясающими функциями! Нажмите, чтобы скачать сейчас!

🤖 Kutools AI : Использует передовые технологии искусственного интеллекта для легкой работы с Email – отвечает, резюмирует, оптимизирует, расширяет, переводит и создает Email.

📧 Автоматизация Email: Автоответчик (доступно для POP и IMAP) / Запланировать отправку Email / Авто Копия/Скрытая копия по правилу при отправке письма / Автоматическое перенаправление (Расширенное правило) / Автоматически добавить приветствие / Автоматическое разделение Email с несколькими получателями на отдельные сообщения ...

📨 Управление Email: Отозвать письмо / Блокировать мошеннические Email по теме и другим признакам / Удалить дубликаты писем / Расширенный Поиск / Организовать папки ...

📁 Вложения Pro: Пакетное сохранение / Пакетное открепление / Пакетное сжатие / Автосохранение / Автоматическое отсоединение / Автоматическое сжатие ...

🌟 Магия интерфейса: 😊Больше красивых и современных Эмодзи / Напоминания о важных письмах / Сворачивание Outlook вместо закрытия ...

👍 Мгновенные действия в один клик: Ответить всем с вложениями / Антифишинг Email / 🕘Показать часовой пояс отправителя ...

👩🏼‍🤝‍👩🏻 Контакты и Календарь: Пакетное добавление контактов из выбранных Email / Разделить группу контактов на отдельные группы / Удалить напоминание о дне рождения ...

Используйте Kutools на вашем любимом языке – поддерживается английский, испанский, немецкий, французский, китайский и более40 других языков!

Мгновенно разблокируйте Kutools для Outlook одним кликом. Не ждите, скачайте сейчас и повысьте свою эффективность!

kutools for outlook features1 kutools for outlook features2