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

Exemples de programmation pour référencer les éléments et les dossiers dans Microsoft Outlook 2002

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

Sommaire

Agrandir tout | Réduire tout

Résumé

Le modèle d'objet Microsoft Outlook est généralement utilisé pour accéder à différents types d'éléments dans les dossiers. Cet article présente les différents objets, méthodes et propriétés qui peuvent être utilisés pour référencer les éléments et les dossiers Outlook.

Cet article propose une synthèse des sujets suivants :

Référence à des dossiers existants
  • Méthode GetDefaultFolder
  • Objet Folders
  • Propriété Parent
  • Méthode GetSharedDefaultFolder
  • Méthode GetFolderFromID
Création de dossiers et référence à de nouveaux dossiers
  • Méthode Folders.Add
Création d'éléments et référence à de nouveaux éléments
  • Méthode CreateItem
  • Méthode Items.Add
  • Méthode CreateItemFromTemplate
Référence à des éléments existants
  • À l'aide de Items(I) ou de For Each...Next
  • À l'aide de Items("objet de l'élément")
  • Méthode Find
  • Méthode Restrict
  • Méthode GetItemFromID

Plus d'informations

Microsoft fournit des exemples de programmation à des fins d'illustration uniquement, sans garantie expresse ou implicite, y compris, mais 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 Partners) 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 procédure pour contacter Microsoft, reportez-vous au site Web de Microsoft à l'adresse suivante :
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support )
REMARQUE : le code VBScript (Visual Basic Scripting Edition) doit utiliser la valeur numérique des constantes qui sont définies dans la bibliothèque d'objets Outlook. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
285202  (http://support.microsoft.com/kb/285202/ ) OL2002 : Liste des constantes du modèle d'objet Outlook

Référence à des dossiers existants

Méthode GetDefaultFolder :

On appelle dossiers par défaut les dossiers situés au même niveau que la Boîte de réception recevant le courrier entrant. Si vous disposez de plusieurs Boîtes de réception dans votre profil, appuyez sur CTRL+MAJ+I pour sélectionner la Boîte de réception par défaut. Les dossiers par défaut sont ceux avec lesquels la plupart des utilisateurs travaillent régulièrement, tels que les dossiers Calendrier, Contacts et Tâches. Vous pouvez facilement faire référence à ces dossiers à l'aide de la méthode GetDefaultFolder. GetDefaultFolder prend un argument, qui est le type de dossier auquel vous souhaitez faire référence. Dans les exemples suivants, la variable objet MyFolder (MonDossier) est attribuée au dossier Contacts par défaut :

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set MyFolder = olns.GetDefaultFolder(olFolderContacts)
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
Set MyFolder = olns.GetDefaultFolder(10)
				

Objet Folders

Vous pouvez utiliser l'objet Folders pour faire référence à n'importe quel dossier visible dans la liste des dossiers Outlook. Cet objet est généralement utilisé pour faire référence à un dossier public Exchange ou à tout autre dossier qui n'est pas un dossier Outlook par défaut.

Les exemples suivants illustrent comment faire référence à un dossier public appelé « My Public Folder » (Mon dossier public). Notez que vous commencez généralement par le dossier dont le niveau est le plus élevé pour descendre jusqu'au niveau du dossier que vous voulez référencer. Notez également que les noms de dossier respectent la casse et doivent correspondre exactement aux noms tels qu'ils figurent dans la liste des dossiers Outlook.
' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set MyFolder1 = olns.Folders("Public Folders")
Set MyFolder2 = MyFolder1.Folders("All Public Folders")
Set MyFolder3 = MyFolder2.Folders("My Public Folder")
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
Set MyFolder1 = olns.Folders("Public Folders")
Set MyFolder2 = MyFolder1.Folders("All Public Folders")
Set MyFolder3 = MyFolder2.Folders("My Public Folder")
				
Les exemples suivants illustrent comment vous pouvez faire référence à un dossier appelé « Business Tasks » (Tâches professionnelles), qui est un sous-dossier du dossier Tasks (Tâches) par défaut.

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set MyTasksFolder = olns.GetDefaultFolder(olFolderTasks)
Set MyFolder = MyTasksFolder.Folders("Business Tasks")
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
Set MyTasksFolder = olns.GetDefaultFolder(13)
Set MyFolder = MyTasksFolder.Folders("Business Tasks")
				

Propriété Parent

S'il existe déjà une référence à un élément ou à un dossier Outlook, vous pouvez utiliser sa propriété Parent pour créer une référence au dossier dans lequel se trouve l'élément ou le dossier.

Dans les exemples suivants, le nom d'un dossier est renvoyé pour un élément particulier :

' Automation code example.
Set ol = New Outlook.Application
Set MyItem = ol.CreateItem(olMailItem) ' Create new item.
MyItem.Save                            ' Save it to Drafts.
Set MyFolder = MyItem.Parent           ' MyFolder = Drafts.
				

' VBScript code example.
' Returns the folder of the current item.
Set MyFolder = Item.Parent
				

GetSharedDefaultFolder

Vous pouvez utiliser cette méthode si quelqu'un vous a affecté les autorisations accordées aux délégués sur l'un de ses dossiers par défaut.

Pour plus d'informations sur l'accès aux dossiers d'autres utilisateurs, reportez-vous à l'article suivant dans la Base de connaissances Microsoft :
290824  (http://support.microsoft.com/kb/290824/ ) Comment faire pour ouvrir le calendrier ou un dossier d'un autre utilisateur dans Outlook 2002

La méthode GetSharedDefaultFolder est utilisée dans la même façon que GetDefaultFolder, à ceci près que vous spécifiez un argument supplémentaire, à savoir le nom du dossier de l'autre utilisateur que vous voulez référencer. Dans cet exemple, le nom de l'autre utilisateur est d'abord résolu afin de vérifier qu'il s'agit d'un nom valide pouvant être utilisé avec la méthode GetSharedDefaultFolder.

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set myRecipient = olns.CreateRecipient("John Smith")
myRecipient.Resolve
If myRecipient.Resolved Then
   Set JohnFolder=olns.GetSharedDefaultFolder _
      (myRecipient, olFolderContacts)
End If
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
Set myRecipient = olns.CreateRecipient("John Smith")
myRecipient.Resolve
If myRecipient.Resolved Then
   Set JohnFolder = olns.GetSharedDefaultFolder(myRecipient, 10)
End If
				

GetFolderFromID

Cette méthode n'est généralement utilisée que dans des solutions plus complexes où une solution fait le suivi des champs StoreID et EntryID d'un dossier afin que ce dernier puisse être référencé rapidement par la suite.

Pour plus d'informations sur l'utilisation de la méthode GetFolderFromID, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
293152  (http://support.microsoft.com/kb/293152/ ) OL2002 : Programmation avec EntryID et StoreID

Création de dossiers et référence à de nouveaux dossiers

Méthode Folders.Add

L'utilisation de la méthode Add sur la collection Folders vous permet de créer un dossier. Le premier argument spécifie le nom du dossier et le deuxième le type du dossier. Dans l'exemple suivant, le sous-dossier Business Tasks (Tâches professionnelles) est ajouté au dossier Tasks (Tâches) par défaut. Étant donné que le type du dossier n'est pas spécifié, ce dernier hérite du type du dossier parent.

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set MyTasksFolder = olns.GetDefaultFolder(olFolderTasks)
Set MyNewFolder = MyTasksFolder.Folders.Add("Business Tasks")
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
Set MyTasksFolder = olns.GetDefaultFolder(13)
Set MyNewFolder = MyTasksFolder.Folders.Add("Business Tasks")
				

Création d'éléments et référence à de nouveaux éléments

Méthode CreateItem

La méthode CreateItem crée un élément Outlook par défaut. Si vous devez créer un élément basé sur un formulaire personnalisé que vous avez créé, utilisez la méthode Items.Add ci-dessous. La méthode CreateItem se situe par commodité au niveau le plus élevé de l'objet Application dans le modèle d'objet Outlook. La méthode prend un seul argument, à savoir une constante indiquant le type de l'élément à créer.

' Automation code example.
Set ol = New Outlook.Application
Set MyTaskItem = ol.CreateItem(olTaskItem)
MyTaskItem.Display
				

   ' VBScript code example.
   Set MyTasktem = Item.Application.CreateItem(3)
   MyTaskItem.Display
				

Méthode Items.Add

L'utilisation de la méthode Add sur la collection Items vous permet de créer un élément basé sur n'importe quelle classe de message, que ce soit une classe de message Outlook par défaut telle que IPM.Contact ou une classe de message pour un formulaire personnalisé, telle que IPM.Contact.MyForm. Pour utiliser la méthode Items.Add, vous devez d'abord référencer le dossier dans lequel vous voulez créer un élément.

Pour plus d'informations sur les classes de message, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft.
290657  (http://support.microsoft.com/kb/290657/ ) OL2002 : Utilisation des définitions des formulaires et des formulaires One-Off dans Outlook 2002
290659  (http://support.microsoft.com/kb/290659/ ) OL2002 : Comment faire pour mettre à jour des éléments existants afin d'utiliser un nouveau formulaire personnalisé

Dans les exemples suivants, la méthode Items.Add est utilisée pour créer un élément basé sur un formulaire de contact personnalisé appelé MyForm (MonFormulaire).

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set myFolder = olns.GetDefaultFolder(olFolderContacts)
Set MyItem = MyFolder.Items.Add("IPM.Contact.MyForm")
MyItem.Display
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
Set myFolder = olns.GetDefaultFolder(10)
Set MyItem = MyFolder.Items.Add("IPM.Contact.MyForm")
MyItem.Display
				

Dans les exemples suivants, la méthode Items.Add est utilisée pour créer un élément contact par défaut.
' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set myFolder = olns.GetDefaultFolder(olFolderContacts)
Set MyItem = MyFolder.Items.Add
MyItem.Display
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
Set myFolder = olns.GetDefaultFolder(10)
Set MyItem = MyFolder.Items.Add
MyItem.Display
				

REMARQUE : si vous utilisez la méthode Items.Add, peu importe le formulaire par défaut associé au dossier. Vous pouvez spécifier toute classe de message valide tant que celle-ci a été publiée dans le dossier ou dans la bibliothèque des formulaires personnels ou de l'organisation.

Méthode CreateItemFromTemplate

Utilisez la méthode CreateItemFromTemplate pour créer un élément basé sur un fichier modèle Outlook (.oft) ou sur le format de fichier .msg. Cette méthode n'est pas souvent utilisée car la plupart des formulaires sont publiés dans un dossier ou dans une bibliothèque de formulaires. Vous pouvez avoir recours à cette méthode, et c'est en général ce qui se pratique, lorsque vous créez un programme d'installation Microsoft Visual Basic pour installer des formulaires dans le cadre d'une solution Outlook. On procède généralement ainsi pour les utilisateurs qui n'ont pas accès au réseau ou qui travaillent hors connexion dans Outlook. Le programme Visual Basic doit opérer comme suit :

  • Automatiser Outlook.
  • Utiliser CreateItemFromTemplate pour ouvrir un formulaire sur un partage réseau ou un disque.
  • À l'aide du modèle d'objet Outlook, publier le formulaire pour une utilisation ultérieure.
    ' Automation code example.
    Set ol = New Outlook.Application
    Set olns = ol.GetNameSpace("MAPI")
    ' Set MyFolder to the default contacts folder.
    Set MyFolder = olns.GetDefaultFolder(olFolderContacts)
    ' Set MyItem to an .oft file on a floppy disk.
    Set MyItem = ol.CreateItemFromTemplate("A:\Contact.oft")
    ' Set MyForm to the item Form Description for publishing.
    Set MyForm = MyItem.FormDescription
    ' Name the form, which also sets its message class.
    MyForm.Name = "My Contact"
    ' Publish the folder to the Contacts folder.
    MyForm.PublishForm olFolderRegistry, MyFolder
    ' Close and do not save changes to the item.
    MyItem.Close olDiscard
    					

Référence à des éléments existants

À l'aide de Items(I) ou de For Each...Next

En général, ces approches sont utilisées pour parcourir en boucle tous les éléments d'un dossier. La collection Items contient tous les éléments d'un dossier particulier et vous pouvez spécifier l'élément à référencer en utilisant un index avec la collection Items. Ceci est généralement utilisé avec l'instruction de programmation For I = 1 to n.

Vous pouvez utiliser l'instruction de programmation For Each...Next pour parcourir en boucle les éléments de la collection sans spécifier d'index. Les deux approches reviennent au même.

Dans les exemples suivants, l'approche Items(I) est utilisée pour parcourir en boucle tous les contacts du dossier Contacts et afficher leur champ FullName dans une boîte de dialogue.

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
' Set MyFolder to the default contacts folder.
Set MyFolder = olns.GetDefaultFolder(olFolderContacts)
' Get the number of items in the folder.
NumItems = MyFolder.Items.Count
' Set MyItem to the collection of items in the folder.
Set MyItems = MyFolder.Items
' Loop through all of the items in the folder.
For I = 1 to NumItems
   MsgBox MyItems(I).FullName
Next
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
' Set MyFolder to the default contacts folder.
Set MyFolder = olns.GetDefaultFolder(10)
' Get the number of items in the folder.
NumItems = MyFolder.Items.Count
' Set MyItem to the collection of items in the folder.
Set MyItems = MyFolder.Items
' Loop through all of the items in the folder.
For I = 1 to NumItems
   MsgBox MyItems(I).FullName
Next
				

Dans les exemples suivants, l'instruction For Each...Next est utilisée pour obtenir le même résultat que dans les exemples précédents :

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
' Set MyFolder to the default contacts folder.
Set MyFolder = olns.GetDefaultFolder(olFolderContacts)
' Set MyItems to the collection of items in the folder.
Set MyItems = MyFolder.Items
For Each SpecificItem in MyItems
   MsgBox SpecificItem.FullName
Next
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
' Set MyFolder to the default contacts folder.
Set MyFolder = olns.GetDefaultFolder(10)
' Set MyItem to the collection of items in the folder.
Set MyItems = MyFolder.Items
For Each SpecificItem in MyItems
   MsgBox SpecificItem.FullName
Next
				

À l'aide de Items("objet de l'élément")

Vous pouvez également utiliser la collection Items et spécifier une chaîne de texte qui correspond au champ Objet d'un élément. Cette approche n'est généralement pas utilisée.

Dans les exemples suivants, un élément est affiché dans la Boîte de réception dont l'objet contient « Please help on Friday! » (Aidez-moi vendredi).

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
' Set MyFolder to the default Inbox.
Set MyFolder = olns.GetDefaultFolder(olFolderInbox)
Set MyItem = MyFolder.Items("Please help on Friday!")
MyItem.Display
				

' VBScript code example.
Set olns = Item.Application.GetNameSpace("MAPI")
' Set MyFolder to the default Inbox.
Set MyFolder = olns.GetDefaultFolder(6)
Set MyItem = MyFolder.Items("Please help on Friday!")
MyItem.Display
				

Méthode Find

Utilisez la méthode Find pour rechercher un élément dans un dossier en fonction de la valeur de l'un de ses champs. Si la recherche à l'aide de la méthode Find aboutit, vous pouvez utiliser la méthode FindNext pour rechercher s'il existe d'autres éléments répondant aux mêmes critères de recherche.

Dans les exemples suivants, il est recherché si vous avez des rendez-vous dont la priorité est haute.

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNamespace("MAPI")
Set myFolder = olns.GetDefaultFolder(olFolderTasks)
Set MyTasks = myFolder.Items
' Importance corresponds to Priority on the task form.
Set MyTask = MyTasks.Find("[Importance] = ""High""")
If MyTask Is Nothing Then ' the Find failed
   MsgBox "Nothing important. Go party!"
Else
   MsgBox "You have something important to do!"
End If
				

' VBScript code example.
Set olns = Item.Application.GetNamespace("MAPI")
Set myFolder = olns.GetDefaultFolder(13)
Set MyTasks = myFolder.Items
' Importance corresponds to Priority on the task form.
Set MyTask = MyTasks.Find("[Importance] = ""High""")
If MyTask Is Nothing Then ' the Find failed
   MsgBox "Nothing important. Go party!"
Else
   MsgBox "You have something important to do!"
End If
				

Méthode Restrict

La méthode Restrict ressemble à la méthode Find, mais au lieu de retourner un seul élément, elle retourne une collection d'éléments qui correspondent aux critères de recherche. Par exemple, vous pouvez utiliser cette méthode pour rechercher tous les contacts qui travaillent dans une même société.

Dans les exemples suivants, tous les contacts qui travaillent dans la société ACME Software sont affichés :

' Automation code example.
Set ol = New Outlook.Application
Set olns = ol.GetNameSpace("MAPI")
Set MyFolder = olns.GetDefaultFolder(olFolderContacts)
Set MyItems = MyFolder.Items
MyClause = "[CompanyName] = ""ACME Software"""
Set MyACMEItems = MyItems.Restrict(MyClause)
For Each MyItem in MyACMEItems
   MyItem.Display
Next
				

' VBScript code example.
' Requires VBScript version 2.0 or later.
Set olns = Item.Application.GetNameSpace("MAPI")
Set MyFolder = olns.GetDefaultFolder(10)
Set MyItems = MyFolder.Items
MyClause = "[CompanyName] = ""ACME Software"""
Set MyACMEItems = MyItems.Restrict(MyClause)
For Each MyItem in MyACMEItems
   MyItem.Display
Next
				
Pour plus d'informations sur l'utilisation de la méthode Restrict, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
291161  (http://support.microsoft.com/kb/291161/ ) OL2002 : Utilisation des fonctionnalités Find et Restrict pour extraire des éléments

Méthode GetItemFromID

Cette méthode n'est généralement utilisée que dans des solutions plus complexes où une solution fait le suivi des champs StoreID et EntryID d'un dossier afin que ce dernier puisse être récupéré rapidement par la suite.

Pour plus d'informations sur l'utilisation de la méthode GetFolderFromID, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
293152  (http://support.microsoft.com/kb/293152/ ) OL2002 : Programmation avec EntryID et StoreID

Références

Pour plus d'informations sur les ressources disponibles et les réponses aux questions les plus fréquentes à propos des 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/ ) 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 : 
kbprogramming kbhowto KB290804
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