Гид по технологиям

Как автоматически сохранять вложения в Outlook в папку с помощью правила и VBA

6 min read Email Обновлено 05 Dec 2025
Автоматически сохранять вложения Outlook
Автоматически сохранять вложения Outlook

как настроить правило Outlook для сохранения вложений

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

Что потребуется

  • Windows с правами для изменения реестра (для включения функции «Запустить сценарий» в новых версиях Outlook).
  • Outlook (рабочая или персональная версия). Точные пути в реестре и интерфейсе могут отличаться в зависимости от версии (например, 16.0 для Office 2016/2019/365).
  • Папка в проводнике для сохранения вложений.
  • Базовые навыки работы с VBA и правами администратора — если будете менять реестр.

1. Добавление VBA-скрипта для сохранения вложений

  1. Откройте редактор VBA: нажмите Alt + F11 (или Alt + Fn + F11 на ноутбуках с заблокированной функциональной клавишей). Откроется окно Microsoft Visual Basic.
  2. В меню выберите Insert → Module, чтобы добавить новый модуль.

вставить модуль в VBA

  1. Скопируйте и вставьте в модуль следующий код VBA. В коде укажите полный путь к папке для сохранения вложений (пример — C:\Users\DT168\Documents\outlook-attachments). Замените путь на свой.
Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
    Dim oAttachment As Outlook.Attachment
    Dim sSaveFolder As String

    sSaveFolder = "C:\Users\DT168\Documents\outlook-attachments\"

    For Each oAttachment In MItem.Attachments
        oAttachment.SaveAsFile sSaveFolder & oAttachment.FileName
    Next
End Sub

Примечания по коду:

  • Используйте FileName, а не DisplayName, чтобы избежать слияния пути и имени файла без разделителя.
  • Обязательно добавьте завершающий обратный слеш в sSaveFolder, чтобы путь корректно формировался.
  1. Сохраните модуль (File → Save) и закройте окно редактора VBA.

вставить код — вставка

Важно: путь в примере — демонстрационный. Убедитесь, что у вас есть права на запись в указанную папку и что в имени пути нет запрещённых символов.

2. Включение опции «Запустить сценарий» (если её нет)

В последних сборках Outlook опция «Run a script» была отключена по умолчанию. Её можно восстановить правкой реестра пользователя.

Важно: перед изменением реестра сделайте резервную копию реестра или точку восстановления системы.

  1. Нажмите Win + R, введите regedit и нажмите Enter.

реестр Windows

  1. Подтвердите UAC (Yes).
  2. Перейдите по ветке (пример для Office 16.0):

путь в реестре

Computer\HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security

  1. В пустой области создайте New → DWORD (32-bit) Value и назовите её EnableUnsafeClientMailRules.

создать DWORD (32-bit) value

  1. Откройте новую запись и установите значение 1.

значение DWORD

  1. Закройте редактор реестра и перезапустите Outlook.

Примечание: имя ветки может отличаться (например, 15.0, 14.0) в зависимости от установленной версии Office.

3. Создание правила в Outlook, которое запускает макрос

  1. В Outlook откройте Rules → Manage Rules & Alerts.

управление правилами и оповещениями

  1. Нажмите New Rule.

новое правило

  1. Выберите Apply rule on message I receive или Check messages when they arrive в старых версиях, затем Next.

применить правило при получении сообщения

  1. Отметьте условие which has an attachment (сообщение содержит вложения) и нажмите Next.

выбор условия: есть вложение

  1. В действиях отметьте Run a script, затем кликните на ссылку a script.

запустить сценарий

  1. Выберите макрос SaveAttachmentsToDisk и подтвердите OK.

выбор макроса

  1. Нажмите Next, задайте имя правила, поставьте галочку Turn on this rule, при желании запустите правило вручную на существующих сообщениях и Finish.

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

Советы по безопасности и надёжности

  • Не храните критичные пароли или конфиденциальные данные в том же каталоге без шифрования.
  • Макросы VBA могут быть источником риска. Ограничьте доступ к файлу PST/OST и к папке с макросами.
  • При использовании рабочих учётных записей уточните политику ИТ: в некоторых компаниях запрещено изменять реестр или запускать макросы.
  • Если Outlook или антивирус блокируют сохранение вложений (например, exe-файлы), настройте исключения аккуратно и с разрешения администратора.

Альтернативные подходы

  • Power Automate (ранее Microsoft Flow): можно настроить поток для автоматического сохранения вложений в OneDrive/SharePoint/папку на компьютере через шлюз.
  • Сторонние надстройки и утилиты для Outlook (например, специализированные менеджеры вложений).
  • Серверные правила на Exchange/Exchange Online: сохраняют вложения на сервере без макросов на клиенте.

Когда стоит выбирать альтернативы:

  • Нет доступа к изменениям в реестре или к запуску макросов.
  • Требуется централизованное решение для всех пользователей в организации.

Чеклист перед запуском и тестированием

  • Указанная папка существует и доступна для записи.
  • В коде VBA указан корректный путь с завершающим обратным слешем.
  • Макрос сохранён и виден в списке доступных скриптов при создании правила.
  • Параметр EnableUnsafeClientMailRules добавлен в реестр (если используется новая версия Outlook).
  • Протестировано на тестовом письме с вложением (разные типы файлов).
  • Проверен режим работы с одинаковыми именами файлов (будут перезаписаны) — при необходимости расширьте макрос, добавив дату/время к имени.

Частые проблемы и как их решать

  • Правило не показывает макрос: закройте и заново откройте Outlook; проверьте, сохранён ли макрос в модуле ThisOutlookSession или в обычном модуле.
  • Вложение не сохраняется: проверьте права на папку и ограничение антивируса.
  • Outlook не показывает «Run a script»: проверьте ключ в реестре и версию Office.
  • Файлы с одинаковыми именами перезаписываются: модифицируйте макрос, добавляя таймштамп к имени файла.

Пример добавления таймштампа к имени:

Dim ts As String
ts = Format(Now, "yyyy-mm-dd_hhnnss")
oAttachment.SaveAsFile sSaveFolder & ts & "_" & oAttachment.FileName

Примеры, когда метод не подходит

  • Корпоративные политики блокируют макросы и правку реестра.
  • Необходим централизованный контроль и аудит: лучше серверные решения или Power Automate.
  • Требуется обработка вложений до доставки в почтовый ящик — нужны серверные фильтры/скрипты.

Краткая методология (быстрый план внедрения)

  1. Подготовка: создать папку, проверить права, уведомить ИТ.
  2. Разработка: вставить и протестировать макрос в VBA на тестовом ящике.
  3. Конфигурация: добавить ключ в реестр (если надо) и создать правило Outlook.
  4. Тестирование: отправить тестовые письма, проверить разные типы вложений и сценарии перезаписи.
  5. Эксплуатация: документировать решение и инструкции для пользователей.

Краткий глоссарий

  • VBA: Visual Basic for Applications — язык макросов для приложений Office.
  • Реестр (Registry): централизованная база настроек Windows.
  • UAC: User Account Control — контроль учётных записей в Windows.

Заключение

Автоматическое сохранение вложений в Outlook с помощью VBA и правила «Запустить сценарий» — гибкое клиентское решение для индивидуального использования. Оно удобно, когда нужно быстро собирать вложения локально. Если же требуется централизованное управление, масштабируемость и безопасность на уровне организации, рассмотрите Power Automate или серверные правила Exchange.

Если хотите, могу подготовить адаптацию макроса с таймштампами в именах файлов или пример потока Power Automate для сохранения вложений в SharePoint.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Настроить валюту и локаль в Google Sheets
Google Таблицы

Настроить валюту и локаль в Google Sheets

Crave не работает с VPN — исправить быстро
VPN

Crave не работает с VPN — исправить быстро

Анонимный аккаунт в Signal и Telegram
Приватность

Анонимный аккаунт в Signal и Telegram

Решение проблем при обновлении macOS Big Sur
macOS

Решение проблем при обновлении macOS Big Sur

Pokémon Showdown не работает в Chrome и Safari — решение
Игры

Pokémon Showdown не работает в Chrome и Safari — решение

Как исправить ошибку Xbox 0x97e107df
Техподдержка

Как исправить ошибку Xbox 0x97e107df