Automatisation d'Outlook à partir d'une application Visual Basic

Étant donné que Microsoft Outlook prend en charge Automation, vous pouvez contrôler Outlook à partir d'un programme écrit avec Microsoft Visual Basic. Automation fournit une méthode standard pour l'accès par une application aux objets, méthodes, propriétés et événements d'autres applications prenant en charge Automation.

Le modèle objet Outlook offre toutes les fonctionnalités nécessaires pour manipuler les données stockées dans les dossiers Outlook, et permet de contrôler de nombreux aspects de l'interface utilisateur Outlook.

To start an Outlook Automation session, you can use either early or late binding. La liaison tardive utilise la fonction GetObject de Visual Basic ou la fonction CreateObject pour initialiser Outlook. For example, the following code sets an object variable to the Outlook Application object, which is the highest-level object in the Outlook object model. All Automation code must first define an Outlook Application object to be able to access any other Outlook objects.

Dim objOL as Object 
Set objOL = CreateObject("Outlook.Application")

Pour utiliser une liaison anticipée, vous devez d'abord définir une référence à la bibliothèque d'objets Outlook. Utilisez la commande de référence sur le menu Outils de Visual Basic pour Applications (VBA) pour définir une référence à la bibliothèque d’objets Microsoft Outlook xx.x, où xx.x représente la version d’Outlook que vous utilisez. Vous pouvez ensuite utiliser la syntaxe suivante pour démarrer une session Outlook.

Dim objOL as Outlook.Application 
Set objOL = New Outlook.Application

Most programming solutions interact with the data stored in Outlook. Outlook stores all of its information as items in folders. Folders are contained in one or more stores. Après avoir défini une variable objet sur l’objet Application Outlook, vous définissez généralement un objet NameSpace pour faire référence à MAPI, comme illustré dans l’exemple suivant.

Set objOL = New Outlook.Application 
Set objNS = objOL.GetNameSpace("MAPI") 
Set objFolder = objNS.GetDefaultFolder(olFolderContacts)

Une fois que vous avez défini une variable d'objet de manière à faire référence au dossier qui contient les éléments que vous souhaitez utiliser, utilisez le code approprié pour accomplir votre tâche, comme indiqué dans l'exemple suivant.

Sub CreateNewDefaultOutlookTask() 
    Dim objOLApp As Outlook.Application 
    Dim NewTask As Outlook.TaskItem 
    ' Set the Application object 
    Set objOLApp = New Outlook.Application 
    ' You can only use CreateItem for default items 
    Set NewTask = objOLApp.CreateItem(olTaskItem) 
    ' Display the new task form so the user can fill it out 
    NewTask.Display 
End Sub

Si vous utilisez VBA pour créer des macros, il existe deux méthodes pour automatiser Outlook. Vous pouvez implémenter une macro qui crée une nouvelle instance de l’objet Application Outlook. La méthode CreateNewDefaultOutlookTask() ci-dessus montre comment appeler New Outlook.Application pour créer une nouvelle instance d'objet Application.

Attention Cette nouvelle instance d’Outlook n’est pas approuvée et peut déclencher la protection du modèle objet.

Comme alternative à la création et à l’automatisation d’une instance distincte d’Outlook, vous pouvez utiliser VBA pour implémenter une macro qui automatise l’instance actuelle d’Outlook. Pour ce faire, utilisez l’objet Application intrinsèque à l’environnement. Cet objet Application est approuvé et peut éviter le déclenchement de la protection du modèle objet. Pour plus d'informations sur la protection du modèle objet, voir What's New for Developers in Outlook 2007 (Part 1 of 2). L’exemple suivant montre la CreateAnotherNewDefaultOutlookTask() méthode utilisant l’objet Application de l’instance actuelle d’Outlook.

Sub CreateAnotherNewDefaultOutlookTask() 
    Dim NewTask As Outlook.TaskItem 
 
    ' You can only use CreateItem for default items 
    Set NewTask = Application.CreateItem(olTaskItem) 
    ' Display the new task form so the user can fill it out 
    NewTask.Display 
End Sub

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette 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.