Использование VBA для чтения новой электронной почты Outlook? - PullRequest
10 голосов
/ 04 ноября 2011

У меня есть следующий код, который сообщает, когда пришло новое сообщение!

Private Sub Application_NewMail()
    MsgBox "New Mail Has Arrived"
End Sub

Как мне прочитать тело, тему этого письма? Есть ли хорошие уроки для программирования Outlook?

Я нашел msdn учебник, который был полезен, но был общим обзором.

1 Ответ

18 голосов
/ 04 ноября 2011

Вам понадобится что-то вроде этого:

Private WithEvents myOlItems  As Outlook.Items

Private Sub Application_Startup()
    Dim olApp As Outlook.Application
    Dim objNS As Outlook.NameSpace
      Set olApp = Outlook.Application
      Set objNS = olApp.GetNamespace("MAPI")
      Set myOlItems = objNS.GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub myOlItems_ItemAdd(ByVal item As Object)

On Error GoTo ErrorHandler

  Dim Msg As Outlook.MailItem

  If TypeName(item) = "MailItem" Then
    Set Msg = item

    MsgBox Msg.Subject
    MsgBox Msg.Body

  End If

ProgramExit:
  Exit Sub
ErrorHandler:
  MsgBox Err.Number & " - " & Err.Description
  Resume ProgramExit
End Sub

Вставьте код в ThisOutlookSession и перезапустите Outlook. Когда сообщение поступит в вашу локальную папку «Входящие» по умолчанию, вы увидите всплывающее окно с темой и текстом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...