Automatisation d'Outlook à partir d'une application Visual BasicAutomating Outlook from a Visual Basic Application

Étant donné que Microsoft Outlook prend en charge Automation, vous pouvez contrôler Outlook à partir d'un programme écrit avec Microsoft Visual Basic.Because Microsoft Outlook supports Automation, you can control Outlook from any program that is written with 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.Automation provides a standard method for one application to access the objects, methods, properties, and events of other applications that support 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.The Outlook object model provides all of the functionality necessary to manipulate data that is stored in Outlook folders, and it provides the ability to control many aspects of the Outlook user interface (UI).

To start an Outlook Automation session, you can use either early or late binding.To start an Outlook Automation session, you can use either early or late binding. Late binding uses either the Visual Basic GetObject function or the CreateObject function to initialize Outlook.Late binding uses either the Visual Basic GetObject function or the CreateObject function to initialize 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.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.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.To use early binding, you first need to set a reference to the Outlook object library. Utilisez la commande Référence du 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.Use the Reference command on the Visual Basic for Applications (VBA) Tools menu to set a reference to Microsoft Outlook xx.x Object Library, where xx.x represents the version of Outlook that you are working with. Vous pouvez ensuite utiliser la syntaxe suivante pour démarrer une session Outlook.You can then use the following syntax to start an Outlook session.

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

Most programming solutions interact with the data stored in Outlook.Most programming solutions interact with the data stored in Outlook. Outlook stores all of its information as items in folders.Outlook stores all of its information as items in folders. Folders are contained in one or more stores.Folders are contained in one or more stores. After you set an object variable to the Outlook Application object, you will commonly set a NameSpace object to refer to MAPI, as shown in the following example.After you set an object variable to the Outlook Application object, you will commonly set a NameSpace object to refer to MAPI, as shown in the following example.

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.Once you have set an object variable to reference the folder that contains the items you wish to work with, you use appropriate code to accomplish your task, as shown in the following example.

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.If you are using VBA to create macros, there are two ways you can automate Outlook. Vous pouvez implémenter une macro qui crée une nouvelle instance de l'objet Application Outlook.You can implement a macro that creates a new instance of the Outlook Application object. La méthode CreateNewDefaultOutlookTask() ci-dessus montre comment appeler New Outlook.Application pour créer une nouvelle instance d'objet Application.The CreateNewDefaultOutlookTask() method above shows how to call New Outlook.Application to create a new Application object instance.

Caution This new instance of Outlook is not trusted and can trigger the object model guard.Caution This new instance of Outlook is not trusted and can trigger the object model guard.

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.As an alternative to creating and automating a separate instance of Outlook, you can use VBA to implement a macro that automates the current instance of Outlook. Pour ce faire, utilisez l'objet Application intrinsèque à l'environnement.To do so, use the Application object intrinsic to the environment. Cet objet Application est approuvé et peut éviter le déclenchement de la protection du modèle objet.This Application object is trusted and can avoid triggering the object model guard. Pour plus d'informations sur la protection du modèle objet, voir What's New for Developers in Outlook 2007 (Part 1 of 2).For more information about the object model guard, see What's New for Developers in Outlook 2007 (Part 1 of 2). L'exemple suivant présente la méthode CreateAnotherNewDefaultOutlookTask() utilisant l'objet Application à partir de l'instance actuelle d'Outlook.The following example shows the CreateAnotherNewDefaultOutlookTask() method using the Application object from the current instance of 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 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.