2011-11-04 6 views
3

Outlook에서 움직이는 항목/이메일의 이벤트를 가져 오는 방법을 검색합니다.VBA Outlook 이벤트 이동 이메일

검사기를 사용할 수 있습니까? 아니면 itemsent 또는 newmail과 같은 이벤트 처리기가 있습니까?

I는 4 개 이상의 메일 박스를 가지고 :

당신에게


상세 정보 감사합니다. 각 폴더와 하위 폴더의 숫자가 X 개 있습니다 (그 중 1 개는 수백만 개의 폴더가있는 라이브 링크 상자입니다). 일부는 일반 상자이며 일반적인 메일을 끌는 사람이 있습니다.

메일이 라이브 링크 상자의 폴더로 이동 될 때마다 캐치하려고합니다.

답변

2

폴더의 컬렉션에 항목을 추가하면 이벤트가 시작됩니다. 예를 들어, 기본받은 편지함보다 한 수준 아래에 "Stuff"라는 폴더가 있다고 가정합니다. 이 코드는 이메일이 해당 폴더로 이동 될 때마다 실행됩니다.

Private WithEvents Items As Outlook.Items 

Private Sub Application_Startup() 
    Dim olApp As Outlook.Application 

    Set olApp = Outlook.Application 
    Set Items = GetNS(olApp).GetDefaultFolder(olFolderInbox).Folders("Stuff").Items 
End Sub 

Private Sub Items_ItemAdd(ByVal item As Object) 

    On Error GoTo ErrorHandler 

    MsgBox "You moved an item into the 'Stuff' folder." 

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

Function GetNS(ByRef app As Outlook.Application) As Outlook.NameSpace 
    Set GetNS = app.GetNamespace("MAPI") 
End Function 

ThisOutlookSession에 붙여넣고 Outlook을 다시 시작하십시오. 전자 메일이 해당 폴더로 이동하면 팝업이 나타납니다.

+0

네, 아이템을 사용합니다.하지만 4 개의 메일 박스 (일부는 통신 박스)가 있고 수백만 개의 폴더가있는 상자가 있습니다 (알고있는 경우 라이브 링크 상자). 문제가 항목 목록 인 것 같거나 폴더를 선택할 때 목록을 설정할 수 있습니다. 제 첫 질문에 정확하지 않았다고 생각합니다. – forX

+0

실제 "항목 이동"이벤트가 없습니다 (듣고 싶습니다. 그렇지 않은 경우 ItemAdd 이벤트를 확인하여 다시 입력해야합니다. 실행되면 참조 된 폴더의 항목 컬렉션에 항목이 추가됩니다. 항목을 옮긴 것으로 가정합니다 (받은 편지함이 아니기 때문에). – JimmyPena

관련 문제