Utilisation de Visual Basic pour Applications pour répondre aux événements OutlookUsing Outlook Visual Basic for Applications to Respond to Outlook Events

Vous pouvez écrire une procédure événementielle (également connue sous le nom de gestionnaire d'événements) pour répondre aux événements qui surviennent dans Microsoft Outlook.You write an event procedure (also known as an event handler) to respond to events that occur in Microsoft Outlook. Par exemple, vous pouvez écrire une procédure événementielle qui agrandit automatiquement la fenêtre d'explorateur au démarrage de Microsoft Outlook.For example, you can write an event procedure that automatically maximizes the explorer window when Outlook starts.

Les événements sont associés à des objets particuliers.Events are associated with particular objects. L’objet Application constitue l’objet de premier plan et est disponible en permanence (en d’autres termes, il n’est pas nécessaire de le créer).The Application object is the topmost object, and is always available (that is, it does not have to be created). Vous pouvez ajouter une procédure événementielle Application à la fenêtre de module ThisOutlookSession en sélectionnant simplement Application dans la liste de gauche et en sélectionnant l’événement dans la liste de droite.You can add an Application event procedure in the ThisOutlookSession module window simply by selecting Application in the left list and then selecting the event in the right list.

L'ajout d'un gestionnaire d'événements aux objets autres que l'objet Application nécessite quelques opérations supplémentaires.Adding an event handler for objects other than the Application object requires a few additional steps.

En premier lieu, vous devez déclarer une variable à l’aide du mot clé WithEvents pour identifier l’objet dont vous voulez gérer l’événement.First, you must declare a variable using the WithEvents keyword to identify the object whose event you want to handle. Par exemple, pour déclarer une variable représentant l’objet OutlookBarPane, vous ajoutez le code ci-dessous à un module de code.For example, to declare a variable representing the OutlookBarPane object, you would add the following to a code module.

Dim WithEvents myOlBar as Outlook.OutlookBarPane

Vous pouvez ensuite sélectionner myOlBar dans la liste objets de la fenêtre du module, puis sélectionner l’événement dans la liste procédure.You can then select myOlBar in the Objects list of the module window and then select the event in the procedure list. Visual Basic Editor ajoute ensuite le modèle de la procédure événementielle à la fenêtre de module.The Visual Basic Editor will then add the template for the event procedure to the module window. Vous pouvez ensuite taper le code à exécuter lorsque l'événement survient.You can then type the code you want to run when the event occurs. L'exemple suivant montre comment afficher le code ajouté à la procédure événementielle BeforeNavigate de l'objet OutlookBarPane.The following example shows code added to the BeforeNavigate event procedure for the OutlookBarPane object.

Private Sub myOlBar_BeforeNavigate(ByVal Shortcut As OutlookBarShortcut, Cancel As Boolean) 
 If Shortcut.Name = "Notes" Then 
 MsgBox "You cannot open the Notes folder." 
 Cancel = True 
 End If 
End Sub

L'étape finale consiste à ajouter du code pour affecter la variable d'objet à l'objet dont vous voulez gérer l'événement.The final step is to add code to set the object variable to the object whose event you want to handle. Ce code peut exister dans une macro ou, si vous souhaitez que l’événement soit géré lorsque Microsoft Outlook est exécuté, vous pouvez le placer dans la procédure événementielle Startup, comme indiqué dans l’exemple suivant.This code can exist in a macro, or if you want the event to be handled whenever Outlook runs, you can put it in the Startup event procedure, as in the following example.

Private Sub Application_Startup() 
 Set myOlBar = Application.ActiveExplorer.Panes(1) 
End Sub

Assistance et commentairesSupport and feedback

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ?Have questions or feedback about Office VBA or this documentation? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.