web-dev-qa-db-ja.com

VBAを使用して新しいOutlook電子メールを読みますか?

新しいメッセージがいつ到着したかを示す次のコードがあります!

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

このメールの件名である本文を読むにはどうすればよいですか? Outlookプログラミングのための良いチュートリアルはありますか?

msdn チュートリアルは役に立ちましたが、一般的な概要でした。

11
kinkajou

次のようなものが必要になります。

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を再起動します。メッセージがデフォルトのローカル受信ボックスに入ると、件名と本文を含むポップアップが表示されます。

19
JimmyPena