Partager via


Référencement d’éléments existants dans un dossier

Il existe différentes manières de faire référence à des éléments existants dans un dossier à l’aide de Microsoft Visual Basic. Cette rubrique fournit des informations sur :

  • Utilisation d’une For … Next boucle ou For Each … Next

  • Utilisation de la collection Items

  • Utilisation de la méthode Find

  • Utilisation de la méthode Restrict

Utilisation d’une boucle For…Next ou For Each...Next

En général, on utilise ces instructions pour parcourir en boucle tous les éléments d’un dossier. La collection Items contient tous les éléments d’un dossier spécifique et vous pouvez spécifier l’élément à référencer en utilisant un index avec la collection Items. Cela est généralement utilisé avec la construction de For i = 1 to n programmation.

Utilisez For Each...Next pour parcourir en boucle les éléments de la collection sans spécifier d’index. Les deux approches permettent d’obtenir le même résultat.

Les exemples suivants utilisent For…Next pour parcourir tous les contacts dans le dossier Contacts et afficher le champ Nom complet dans une boîte de dialogue.

' Microsoft Visual Basic for Applications code example. 
Set olns = Application.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.Restrict("[MessageClass] = 'IPM.Contact'") 
' Loop through all of the items in the folder. 
For I = 1 to NumItems 
   MsgBox MyItems(I).FullName 
Next 

' Visual Basic Scripting Edition 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.Restrict("[MessageClass] = 'IPM.Contact'") 
' Loop through all of the items in the folder. 
For I = 1 to NumItems 
   MsgBox MyItems(I).FullName 
Next

Les exemples suivants utilisent For Each...Next pour obtenir le même résultat que les exemples précédents :

' Visual Basic/Visual Basic for Applications code example. 
Set olns = Application.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.Restrict("[MessageClass] = 'IPM.Contact'") 
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.Restrict("[MessageClass] = 'IPM.Contact'") 
For Each SpecificItem in MyItems 
   MsgBox SpecificItem.FullName 
Next

Utilisation de la collection Items

Vous pouvez également utiliser la collection Items et spécifier une chaîne de texte qui correspond au champ Objet d’un élément. Les exemples suivants affichent un élément dans la boîte de réception dont l’objet contient « Please help on Friday ! »

' Visual Basic/Visual Basic for Applications code example. 
Set olns = Application.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

Utilisation de la 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 réussit, vous pouvez utiliser la méthode FindNext pour case activée d’autres éléments qui répondent aux mêmes critères de recherche.

Les exemples suivants recherchent s’il existe des tâches à priorité élevée.

' Visual Basic/Visual Basic for Applications code example. 
Set olns = Application.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

Utilisation de la méthode Restrict

La méthode Restrict est semblable à la méthode Find, mais au lieu de retourner un élément unique, elle retourne une collection d’éléments qui répondent aux critères de recherche. Vous pourriez par exemple utiliser cette méthode pour rechercher tous les contacts qui travaillent pour la même société.

Les exemples suivants affichent tous les contacts qui fonctionnent chez ProseWare Corporation :

' Automation code example. 
Set olns = Application.GetNameSpace("MAPI") 
Set MyFolder = olns.GetDefaultFolder(olFolderContacts) 
Set myItems = myFolder.Items.Restrict("[MessageClass] = 'IPM.Contact'") 
MyClause = "[CompanyName] = ""ProseWare""" 
Set MyPWItems = MyItems.Restrict(MyClause) 
For Each MyItem in MyPWItems 
   MyItem.Display 
Next
' VBScript code example. 
Set olns = Item.Application.GetNameSpace("MAPI") 
Set MyFolder = olns.GetDefaultFolder(10) 
Set myItems = myFolder.Items.Restrict("[MessageClass] = 'IPM.Contact'") 
MyClause = "[CompanyName] = ""ProseWare""" 
Set MyPWItems = MyItems.Restrict(MyClause) 
For Each MyItem in MyPWItems 
   MyItem.Display 
Next

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.