Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Обработка файлов *.msg
 
Добрый день!

  Помогите, пожалуйста, решить такую проблемку:
  В другой отдел по Outlook приходят каждый день 20-30 .xls файлов завернутых в RAR
  Раз в неделю девочка, которая получает эти файлы, выделяет все письма, сохраняет на диск, архивирует RAR  и присылает мне

 Чтобы не усложнять задачу, вложение RAR из Outlook на диск я скопирую ручками, остается такая матрешка;  RAR (  MSG  ( RAR ( XLS) ) )
 Как работать с RAR  в принципе понятно, но как их вытаскивать из  MSG, уже сохраненных на диске ?
 
Цитата
tvit написал: но как их вытаскивать из  MSG,
Элементарно.
Код
' Добавте ссылку на  Microsoft CDO for Windows 2000 Librar
Sub ReadMsg()
    Dim iDir As New CDO.DropDirectory
    Dim iMsgs As CDO.IMessages
    strMailFolder = "Путь к папке с письмами"
    Set iMsgs = iDir.GetMessages(strMailFolder)
    For i = 1 To iMsgs.Count
        For n = 1 To iMsgs.Item(i).Attachments.Count
            iMsgs.Item(i).Attachments.Item(n).SaveToFile "c:/" & _
            iMsgs.Item(i).Attachments.Item(n).Filename
        Next
    Next
End Sub
 
К сожалению для Office 2010 объекты CDO не поддерживаются:
см.здесь
 
Здесь нашел скрипт, который меня по большей части устраивает. Для его работы нужно добавить в Reference библиотеку Microsoft Outlook 14/15. Но при его использовании необходимо чтобы Outlook был открыт и открываемые окна Outlook мелькают на экране. Может быть как можно подправить эти моменты?  
 
Вариант 1
Вариант 2
пока больше ничего внятного не нашел
F1 творит чудеса
 
Спасибо, но я вроде решил свою проблему тем скриптом, который указал в последнем сообщении
- мерцание окон оказалось решается простым комментированием строки: openMsg.Display
В этой строке все сообщения выводились на экран, что мне совсем не нужно было.
А проблема с открытием Оутлук решилась стандартными приемами работы с объектами. Примерно так
Код
boolCloseOutlook = False
On Error Resume Next
Set OutlookApp = GetObject(, "Outlook.Application")
If OutlookApp Is Nothing Then
    Set OutlookApp = New Outlook.Application
    boolCloseOutlook = True
End If
On Error GoTo 0
Страницы: 1
Читают тему (гостей: 1)