2017-01-16 8 views
2

Я пытаюсь извлечь вложения из сохраненных сообщений Outlook, чтобы я мог добывать данные из прилагаемых таблиц Excel. Сообщения были сохранены в общей папке в виде файлов .msg, и я изо всех сил пытаюсь получить VBA, чтобы даже распознавать сообщения в виде файлов. Сначала я пытаюсь получить детали сообщения в коде ниже в качестве доказательства концепции.Попытка извлечь вложения Outlook из сохраненных файлов .msg с помощью VBA

Как только у меня есть эта работа, я могу работать над обходом файлов и работой с вложениями. Я нашел много кода на этом сайте для извлечения вложений из писем, все еще находящихся в Outlook, но у меня нет доступа к папкам Outlook, и исходные сообщения были удалены.

Sub ExtractExcel() 
Dim aExcel As Outlook.Attachment 
Dim stFilePath As String 
Dim stFileName As String 
Dim stAttName As String 
Dim stSaveFolder As String 
Dim oEmail As Outlook.MailItem 


'~~> Outlook Variables for email 
Dim eSender As String, dtRecvd As String, dtSent As String 
Dim sSubj As String, sMsg As String 


stFilePath = "Y:\Purchasing\The Team\User Name\Supply Chain Admin - Outlook\New-Revised Orders\FW Mail Order Daffodil.msg" 
stSaveFolder = "C:\Projects\SOTD\PO_Excel" 

Debug.Print stFilePath 
Debug.Print stSaveFolder 

oEmail = stFilePath 


With oEmail 
    eSender = oEmail.SenderEmailAddress 
    dtRecvd = oEmail.ReceivedTime 
    dtSent = oEmail.CreationTime 
    sSubj = oEmail.Subject 
    sMsg = oEmail.Body 

Debug.Print eSender 
Debug.Print dtRecvd 
Debug.Print dtSent 
Debug.Print sSubj 
Debug.Print sMsg 
End With 

End Sub 

Я использую Excel VBA, поскольку я знаком с ним, но рад предложить альтернативные стратегии. Любые и все указатели с благодарностью получили.
Благодаря
Kyle

+0

Вы посмотрели на CreateItemFromTemplate из http://stackoverflow.com/questions/7890612/vba-code-to-save-an-attachment-excel-file-from-an-outlook-email-that-was-insid/7916444 # 7916444? – brettdj

ответ

0

Использование CreateItemFromTemplate из VBA Code to save an attachment (excel file) from an Outlook email that was inside another email as an attachment вы могли

  • открытым тзд файлы C:\temp\
  • полосы все вложения в C:\temp1\

код

Sub SaveOlAttachments() 

Dim msg As Outlook.MailItem 
Dim att As Outlook.Attachment 
Dim strFilePath As String 
Dim strAttPath As String 

    'path for creating msgs 
strFilePath = "C:\temp\" 
    'path for saving attachments 
strAttPath = "C:\temp1\" 

strFile = Dir(strFilePath & "*.msg") 
Do While Len(strFile) > 0 
    Set msg = Application.CreateItemFromTemplate(strFilePath & strFile) 
    If msg.Attachments.Count > 0 Then 
     For Each att In msg.Attachments 
      att.SaveAsFile strAttPath & att.FileName 
     Next 
    End If 
    strFile = Dir 
Loop 

End Sub 
+0

Спасибо за помощь. Я получаю сообщение об ошибке в строке Set msg: Ошибка времени выполнения 438 «Объект не поддерживает это свойство или метод» –

+0

Исправлено! Ранг код в Outlook вместо Excel, и он сработал. Большое спасибо за вашу помощь :-) –

+1

Вы можете запустить его из Excel. (1) библиотека объектно-ориентированных объектов (2) Добавьте «Dim app as Outlook.Application» в свои объявления (3) используйте «приложение» вместо «Приложение». – Vlad

0

Namespace.OpenSharedItem. Не используйте CreateItemFromTemplate - он стирает многие свойства (такие как свойства, связанные с отправителем).

+0

Не знаете, почему это проблема, если OP хочет снять вложения? – brettdj

+0

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

 Смежные вопросы

  • Нет связанных вопросов^_^