2011-11-04 8 views
3

Je cherche un moyen d'obtenir l'événement d'un déménagement/email dans Outlook. Pouvons-nous utiliser un inspecteur?VBA Outlook événement déplacement email

Ou peut-être y a-t-il un gestionnaire d'événements comme itement ou newmail?

Merci


Plus de détails:

J'ai 4 ou plusieurs boîtes aux lettres. Chacun a un nombre X de dossiers et sous-dossiers (1 d'entre eux est une boîte de liaison livelink avec des millions de dossiers). Certains sont communs, et il y a des gens qui font glisser le courrier commun.

Je veux attraper chaque fois qu'un courrier est déplacé sur un dossier dans la boîte de lien de livelink.

Répondre

2

Un événement est déclenché lorsqu'un élément est ajouté à une collection, dans un dossier. Par exemple, supposons que vous avez un dossier appelé "Stuff" un niveau en dessous de votre boîte de réception par défaut. Ce code feu chaque fois qu'un courrier électronique a été déplacé dans ce dossier:

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 

coller dans ThisOutlookSession et redémarrez Outlook. Chaque fois qu'un email est déplacé dans ce dossier, vous verrez le popup.

+0

ouais, eh bien, vous utilisez des éléments, mais j'ai 4 boîte aux lettres (certains sont commun boîte), et j'ai une boîte avec des millions de dossiers (boîte de lien livel si vous le savez). le problème semble être la liste des éléments, ou peut-être je peux définir la liste quand un dossier est sélectionné, je pense que je n'étais pas assez précis sur ma première question – forX

+0

Il n'y a pas de véritable événement "Item Move" (j'adorerais entendre sinon), vous devez y revenir en vérifiant l'événement ItemAdd. S'il se déclenche, un élément a été ajouté à la collection d'éléments du dossier référencé. Nous supposons simplement (puisque ce n'est pas la boîte de réception) que l'élément a été déplacé. – JimmyPena