2015-03-25 2 views
-1

Я хотел бы знать, как открыть вложение Excel в моем почтовом ящике Outlook 2010 с кодом VBA.Откройте приложение Excel в Outlook 2010 с помощью VBA

Я хотел бы код на:

  1. Проверки для конкретного субъекта, который не меняется «Тест»
  2. Проверьте, что электронная почта прочитанный или непрочитанной и если непрочитанная использовать, что один

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

Я бы очень ки eciate, если вы можете объяснить, что делает код, поскольку я не знаком с битом соединения Outlook.


Это то, что я собрал с разных сайтов, включая stackoverflow, он выполняет свою работу.

  • Кажется, что работает для электронных писем, у которых есть RE: в теме для писем 10PM и 5PM. Я явно назвал тему двух писем. Может кто-нибудь мне помочь?
  • Я не знаком с объявлением переменных для объектов Outlook. Я правильно сформулировал переменные?
  • Я также хотел бы скопировать данные в каждый файл и вставить его в другую книгу. Я хотел бы, чтобы данные были вставлены под первыми данными из каждой рабочей книги, поэтому ей нужно будет найти последнюю строку и вставить ее на 1 строку ниже последней строки для каждой информации в каждой книге на открытую книгу, которая хранится на другом пути ,

.

Sub DownloadAttachmentFirstUnreadEmail() 

    Const olFolderInbox = 6 
    Const AttachmentPath As String = "C:\My Documents\Outlook Test\" 

    Dim oOlAtch As Object 

    Set objOutlook = CreateObject("Outlook.Application") 
    Set objNamespace = objOutlook.GetNamespace("MAPI") 
    Set objFolder = objNamespace.GetDefaultFolder(olFolderInbox) 
    Set objFolder = objFolder.Folders("**CLIENT ISSUES**").Folders("*Daily Reports").Folders("1. Open Trade Report") 

    Set colItems = objFolder.Items 
    Set colFilteredItems1 = colItems.Restrict("[Unread] = True AND [Subject] = '10PM FXC Email notification for Martin Currie'") 
    Set colFilteredItems2 = colItems.Restrict("[Unread] = True AND [Subject] = 'FXC Email notification for Martin Currie Funds'") 

     '~~> Check if there are any actual unread 10PM FXC emails 
    If colFilteredItems1.Count = 0 Then 
     MsgBox "NO Unread 10PM Email In Inbox" 
    Else 
     '~~> Extract the attachment from the 1st unread email 
     For Each colItems In colFilteredItems1 
      '~~> Check if the email actually has an attachment 
      If colItems.Attachments.Count <> 0 Then 
       For Each oOlAtch In colItems.Attachments 
        '~~> save the attachment and open them 
        oOlAtch.SaveAsFile AttachmentPath & oOlAtch.Filename 
        Set wb = Workbooks.Open(Filename:=AttachmentPath & oOlAtch.Filename) 
       Next oOlAtch 
      Else 
       MsgBox "10PM email doesn't have an attachment" 
      End If 
     Next colItems 

    End If 

      '~~> Check if there are any actual unread FXC Email emails 
    If colFilteredItems2.Count = 0 Then 
     MsgBox "NO Unread 5PM Email In Inbox" 
    Else 
     '~~> Extract the attachment from the 1st unread email 
     For Each colItems In colFilteredItems2 
      '~~> Check if the email actually has an attachment 
      If colItems.Attachments.Count <> 0 Then 
       For Each oOlAtch In colItems.Attachments 
        '~~> save the attachment and open them 
        oOlAtch.SaveAsFile AttachmentPath & oOlAtch.Filename 
        Set wb = Workbooks.Open(Filename:=AttachmentPath & oOlAtch.Filename) 
       Next oOlAtch 
      Else 
       MsgBox "5PM email doesn't have an attachment" 
      End If 
     Next colItems 

    End If 

End Sub 

ответ

1

Прежде всего, я хотел бы предложить, начиная с Getting Started with VBA in Outlook 2010 статьи в MSDN.

Вы можете назначить макрос VBA из правила Outlook, он должен выглядеть следующим образом одно:

public sub test(mail as MailItem) 
    ' 
end sub 

, где вы можете проверить объект почты. Похоже, вам нужно проверить свойства класса MailItem Subject, UnRead и Attachments.

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