Страницы: 1
RSS
"Пакетное" извлечение pdf файлов из писем в почте Outlook
 
Подскажите пожалуйста, как можно пакетно извлечь вложенные pdf файлы из писем в почте Outlook в определённую папку на жёстком диске?

Спрашиваю, потому что пришло несколько десятков писем с вложенными в них pdf файлами. Конечно, pdf файл из каждого письма можно открыть и сохранить куда надо. Но хотелось бы сэкономить время и сделать это извлечение вложенных в письма файлов "пакетно", а не щёлкать на каждое письмо. Может есть уже описанный приём для этой операции или какая-то надстройка.
 
Код
Sub PocketExtraction()
    Dim myApp           As Outlook.Application: Set myApp = CreateObject("Outlook.Application")
    Dim ns              As Outlook.NameSpace:   Set ns = myApp.GetNamespace("MAPI")
    Dim oFolder As Outlook.MAPIFolder
    Set oFolder = ns.Folders("your_addres@kubanpromstroy.ru").Folders("Входящие")
    Dim oItem          As Outlook.MailItem
    Dim oFile As Object
    Dim sFileName As String
    Dim sFullName As String
    
    For Each oItem In oFolder.Items
        For Each oFile In oItem.Attachments
            sFileName = oFile.FileName
            If LCase(Right(sFileName, 3)) = "pdf" Then
                sFullName = "C:\tmp\" & sFileName
                oFile.SaveAsFile sFullName
            End If
        Next
    Next
End Sub
 
Папку "Входящие", вроде, можно определить ещё вот так

Код
Const olFolderInbox = 6
Set oInbox = objOutlookApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

P.S. Так как этот процесс возможно будет не быстрый, то лучше в конце работы макроса выводить какой-нибудь MsgBox, чтобы пользователь знал, что макрос завершил работу. А то так будет сидеть 5-10-30 минут и ждать
Изменено: New - 05.06.2023 11:52:34
 
МатросНаЗебре,
напишите пожалуйста, C:\tmp\  -это папка на диске C, в которую "пойдут" pdf-файлы, извлеченные из папки "Входящие" Outlook ?
 
Цитата
написал:
-это папка на диске C?
Да.
 
Цитата
написал:
Может есть уже описанный приём для этой операции или какая-то надстройка
Не поверите :) Сохранить вложения из Outlook в указанную папку
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
программа "SysTools Outlook Attachment Extractor"
 
МатросНаЗебре,

Напишите пожалуйста,

1)ваш код необходимо разместить в модуле листа Excel?

2)что означает «MAPI»?

3)переменные данные в вашем макросе это только: ?

("your_addres@kubanpromstroy.ru) адрес эл. почты, который в Outlook

(""Входящие"") папка в Outlook, из которой «вытягиваются» pdf-файлы

"C:\tmp\" папка, в которую извлекутся pdf-файлы из определённой папки почты Outlook

4)макрос будет работать по корпоративной почте Outlook, на модерацию которой у пользователя нет доступа, а только обычный доступ?

 
Цитата
написал:
1)ваш код необходимо разместить в модуле листа Excel?
Лучше, конечно, в стандартном модуле, а не в модуле листа.
Цитата
написал:
2)что означает «MAPI»?
Воспринимайте как некое заклинание, без которого фокус не сработает.
Цитата
написал:
3)переменные данные в вашем макросе это только: ?
Там есть ещё парочка, но для персональной настройки достаточно менять только те, что Вы указали.
Цитата
написал:
4)макрос будет работать по корпоративной почте Outlook, на модерацию которой у пользователя нет доступа, а только обычный доступ?
Для макроса права на модерацию не нужны.
 
Добрый день. Скажите глупый вопрос, а можно сделать так чтобы файлы pdf с конкретного адреса сохранились по номеру из этого файла, так как у меня они приходят с непонятными номерами. формат файла всегда один и тот же, если нужно могу тут выложить его образец .
 
МатросНаЗебре,
подскажите пожалуйста, почему, во вашему мнению, макрос не сработал и вышло предупреждение "Compile error" ?
 
По моему мнению, неправильно написан путь. По всей видимости, хотели написать так:
Код
"D:\pdf\"
 
МатросНаЗебре,
подправила путь, но всё равно после срабатывания макроса выдаётся ошибка. Подскажите пожалуйста, что можно попробовать сделать?
 
Цитата
Olga H. написала: ...выдаётся ошибка
Код в #2 был приведен для Outlook.
Чтобы он работал в Excel нужно в VBE-Toolls-References установить флажок на Microsoft Outlook 16.0 Object Library
А для кода по ссылке Дмитрия в #6 этого не требуется, там и работающий пример можно скачать
Изменено: ZVI - 22.06.2023 19:24:40
Страницы: 1
Наверх