Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 ouFor 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.