Numéro d'article: 291120 - Dernière mise à jour: jeudi 23 novembre 2006 - Version: 3.1

Comment faire pour automatiser Outlook 2002 à partir d'un autre programme

Ancien nº de publication de cet article : F291120
Pour vous procurer une version Microsoft Outlook 97 de cet article, reportez-vous à l'article 168095  (http://support.microsoft.com/kb/168095/ ) .
Pour vous procurer une version Microsoft Outlook 98 de cet article, reportez-vous à l'article 181202  (http://support.microsoft.com/kb/181202/ ) .
Pour vous procurer une version Microsoft Outlook 2000 de cet article, reportez-vous à l'article 201096  (http://support.microsoft.com/kb/201096/ ) .

Sommaire

Agrandir tout | Réduire tout

Résumé

Cet article fournit un aperçu de la programmation de Microsoft Outlook à l'aide de Automation à partir d'un autre programme. Il contient les rubriques suivantes :

Liaison précoce et Liaison tardive

Exemple : Création d'un élément de tâche par défaut
Exemple : Création d'un contact avec une feuille personnalisée
Exemple : Boucle sur tous les contacts par défaut

Plus d'informations

Microsoft fournit des exemples de programmation à des fins d'illustration uniquement, sans garantie explicite ou implicite, y compris, de manière non limitative, les garanties implicites de qualité marchande et/ou d'adéquation à un usage particulier. Cet article suppose que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du Support technique Microsoft peuvent vous expliquer les fonctionnalités d'une procédure particulière, mais ils ne peuvent pas modifier les exemples en vue de vous fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques. Si vous ne maîtrisez que partiellement la programmation, vous pouvez contacter un partenaire certifié Microsoft (Microsoft Certified Partner) ou le service client Microsoft au 0825 827 829 qui pourra transmettre votre demande de consulting aux équipes Microsoft appropriées. Pour plus d'informations sur les partenaires certifiés Microsoft, reportez-vous au site Web de Microsoft à l'adresse suivante :
https://partner.microsoft.com/global/30000104 (https://partner.microsoft.com/global/30000104)
Pour plus d'informations sur les options de support technique disponibles et la façon de contacter Microsoft, reportez-vous au site Web de Microsoft à l'adresse suivante :
http://support.microsoft.com/default.aspx?scid=fh;FR;ASSISTEDOVER (http://support.microsoft.com/default.aspx?scid=fh;en-us;cntactms)
Automation permet à un programme d'en contrôler un autre en lui envoyant des commandes ou en y récupérant des informations par voie de programmation. Vous pouvez utiliser les exemples de code fournis dans cet article dans Microsoft Word, Microsoft Excel, Microsoft Visual Basic ou dans tout autre programme prenant en charge Automation.

Liaison précoce et liaison tardive

Vous pouvez utiliser la liaison précoce ou tardive pour démarrer une session Automation. La liaison tardive utilise la fonction GetObject ou CreateObject pour initialiser Outlook. Ainsi, le code suivant définit un objet pour l'application Outlook, qui est l'objet de niveau le plus élevé dans le modèle objet Outlook. Tout code Automation doit commencer par définir l'objet Outlook.Application pour accéder à l'un des autres objets Outlook qui en dépendent.
Dim objOL as Object
Set objOL = CreateObject("Outlook.Application")
				
Pour utiliser la liaison précoce, vous devez d'abord référencer la bibliothèque d'objets Outlook disponible. Pour ce faire, procédez comme suit à partir de Visual Basic (VB) ou de Visual Basic pour Applications :
  1. Dans l'Éditeur de Visual Basic pour Applications, dans le menu Outils, cliquez sur Références. Si vous utilisez Microsoft Visual Basic, dans le menu Projet, cliquez sur Références.
  2. Cochez la case Bibliothèque d'objets Microsoft Outlook 10.0, puis cliquez sur OK.
Le fichier de la bibliothèque d'objets est le fichier Msoutl.olb, qui est installé par défaut dans le dossier C:\Program Files\Microsoft Office\Office10. Une fois que vous avez référencé la bibliothèque d'objets Outlook, vous pouvez utiliser la syntaxe suivante pour démarrer une session Outlook :
Set ol = New Outlook.Application
				
La liaison précoce présente deux avantages. En premier lieu, le code utilisant la liaison précoce s'exécute plus vite qu'un code utilisant la liaison tardive (CreateObject/GetObject). En second lieu, la référence à la bibliothèque d'objets Outlook permet d'accéder à l'aide en ligne sur la programmation Outlook par le biais de l'objet browser (navigateur) et de l'aide système.

Le modèle objet Outlook

Le modèle objet Outlook permet de manipuler les données stockées dans les dossiers Outlook. D'autres fonctionnalités vous permettent également de manipuler la barre Outlook, de travailler avec des éléments sélectionnés dans un dossier, de manipuler les fenêtre de niveau élément et application et de modifier les vues. En ajoutant des événements, le code peut répondre à plusieurs événements se produisant dans Outlook, et vous créez ainsi une solution dépendante des événements.

Vous constaterez, néanmoins, que les fonctionnalités disponibles pour contrôler Outlook sont limitées par rapport à celles disponibles pour Microsoft Word et Excel. De nombreuses fonctionnalités Outlook ne sont ni exposées ni personnalisables par le biais du modèle objet Outlook. Ainsi, vous ne pouvez pas utiliser le modèle objet pour modifier la plupart des paramètres Options du menu Tools.

REMARQUE : pour contourner les limitations du modèle objet, vous pouvez utiliser l'objet CommandBars fourni par Microsoft Office pour exécuter la plupart des commandes affectées aux boutons de la barre d'outils ou aux commandes des menus. Vous pouvez, par exemple, utiliser l'objet CommandBars pour exécuter la commande Nouvel appel, dans le sous-menu Composer du menu Outils pour afficher la boîte de dialogue Nouvel appel.

La plupart des solutions de programmation doivent interagir avec les données stockées dans Outlook. Outlook stocke ses données dans des dossiers MAPI (Messaging Application Programming Interface). Par conséquent, après avoir défini une variable d'objet sur Outlook.Application, vous définirez généralement MAPI pour l'objet Namespace :
Set ol = New Outlook.Application
Set olns = ol.GetNamespace("MAPI")
				
Une fois l'objet Namespace défini, vous pouvez définir l'objet suivant sur un dossier dans l'espace de noms MAPI. Une façon courante de procéder consiste à spécifier les dossiers Outlook par défaut, c'est-à-dire ceux qui se trouvent au même niveau de dossier que la boîte de réception recevant le courrier électronique entrant. Le code suivant définit l'objet objFolder sur le dossier Contacts par défaut :
Set ol = New Outlook.Application
Set olns = ol.GetNamespace("MAPI")
Set objFolder = olns.GetDefaultFolder(olFolderContacts)
				
Pour plus d'informations à ce sujet, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
290804  (http://support.microsoft.com/kb/290804/EN-US/ ) OL2002 : Exemples de programmation pour référencer les éléments et les dossiers
Une fois que vous vous trouvez, par voie de programmation, sur le dossier contenant les éléments que vous voulez utiliser ou créer, vous utilisez le code approprié pour effectuer votre tâche de programmation (voir les exemples de programmation plus loin dans cet article).

Outre l'accès aux données Outlook à partir d'une autre application, cette dernière peut également être informée de certains événements se produisant dans Outlook (ajout d'un élément dans un dossier, sélection par l'utilisateur d'un autre élément dans le dossier, affichage d'un rappel Outlook, par exemple). Pour obtenir la liste complète des événements disponibles, reportez-vous à la Référence Microsoft Outlook Visual Basic (Vbaol10.chm). Pour plus d'informations sur la manière d'obtenir le fichier d'aide, voir la section Références de cet article.

Pour plus d'informations sur l'intégration d'événements Outlook dans votre application, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
291119  (http://support.microsoft.com/kb/291119/EN-US/ ) OL2002 : Utilisation des événements Outlook dans un autre programme

Exemple de code pour les tâches de programmation courantes

Exemple : Création d'un élément de tâche par défaut

Sub CreateNewDefaultOutlookTask()

   Dim ol As Outlook.Application
   Dim NewTask As Outlook.TaskItem

   ' Set the Application object.
   Set ol = New Outlook.Application

   ' Create a new standard task.
   Set NewTask = ol.CreateItem(olTaskItem)

   ' Display the new task form so the user can fill it out.
   NewTask.Display

End Sub
				

Exemple : Création d'un contact avec une feuille personnalisée

Sub CreateNewContactFromCustomForm()

   Dim ol As Outlook.Application
   Dim olns As Outlook.NameSpace
   Dim objFolder As Outlook.MAPIFolder
   Dim AllContacts As Outlook.Items
   Dim NewContact As Outlook.ContactItem

   ' Set the Application object.
   Set ol = New Outlook.Application

   ' Set the Namespace object.
   Set olns = ol.GetNamespace("MAPI")

   ' Set the default Contacts folder.
   Set objFolder = olns.GetDefaultFolder(olFolderContacts)

   ' Set objAllContacts equal to the collection of all contacts.
   Set AllContacts = objFolder.Items

   ' Add a new contact to the AllContacts collection using the
   ' "IPM.Contact.MyForm" form.
   Set NewContact = AllContacts.Add("IPM.Contact.MyForm")

   ' Display the new contact form.
   NewContact.Display

End Sub
				

Exemple : Boucle sur tous les contacts par défaut

Sub GetOutlookContacts()

   Dim ol As Object
   Dim olns As Object
   Dim objFolder As Object
   Dim objAllContacts As Object
   Dim Contact As Object

   ' Set the Application object.
   Set ol = New Outlook.Application

   ' Set the Namespace object.
   Set olns = ol.GetNamespace("MAPI")

   ' Set the default Contacts folder.
   Set objFolder = olns.GetDefaultFolder(olFolderContacts)

   ' Set objAllContacts equal to the collection of all contacts.
   Set objAllContacts = objFolder.Items

   ' Loop through each contact.
   For Each Contact In objAllContacts

      ' Display the Fullname field for the contact.
      MsgBox Contact.FullName

   Next

End Sub
				

Références

Pour plus d'informations sur les ressources disponibles et les réponses aux questions les plus fréquemment posées sur les solutions Microsoft Outlook, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
287530  (http://support.microsoft.com/kb/287530/EN-US/ ) OL2002 : Questions sur les formulaires personnalisés et les solutions Microsoft Outlook

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Outlook 2002 Standard
Mots-clés : 
kbautomation kbhowto KB291120
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
 

Traductions disponibles

 

Related Support Centers