Exécution d'une boucle dans une collection

Vous pouvez exécuter une boucle sur les éléments d'une collection de différentes manières. Il est néanmoins recommandé d'utiliser la boucle For Each...Next. Dans cette structure, Visual Basic répète un bloc d’instructions pour chaque objet d’une collection. Cet exemple montre comment afficher le nom de chaque document contenu dans la collection Documents.

Sub LoopThroughOpenDocuments() 
 Dim docOpen As Document 
 
 For Each docOpen In Documents 
 MsgBox docOpen.Name 
 Next docOpen 
End Sub

Au lieu d'afficher un nom d'élément par boîte de message, vous pouvez utiliser un tableau pour stocker l'ensemble des noms. Cet exemple montre comment utiliser un tableau pour stocker l'ensemble des signets contenus dans le document actif.

Sub LoopThroughBookmarks() 
 Dim bkMark As Bookmark 
 Dim strMarks() As String 
 Dim intCount As Integer 
 
 If ActiveDocument.Bookmarks.Count > 0 Then 
 ReDim strMarks(ActiveDocument.Bookmarks.Count - 1) 
 intCount = 0 
 For Each bkMark In ActiveDocument.Bookmarks 
 strMarks(intCount) = bkMark.Name 
 intCount = intCount + 1 
 Next bkMark 
 End If 
End Sub

Vous pouvez exécuter une boucle dans une collection pour effectuer une tâche de manière conditionnelle sur les membres de la collection. Par exemple, le code ci-dessous permet de mettre à jour les champs DATE contenus dans le document actif.

Sub UpdateDateFields() 
 Dim fldDate As Field 
 
 For Each fldDate In ActiveDocument.Fields 
 If InStr(1, fldDate.Code, "Date", 1) Then fldDate.Update 
 Next fldDate 
End Sub

Vous pouvez exécuter une boucle dans une collection pour déterminer l'existence d'un élément. Par exemple, le code ci-dessous permet d'afficher un message si une insertion automatique nommée « Filename » figure dans la collection AutoTextEntries.

Sub FindAutoTextEntry() 
 Dim atxtEntry As AutoTextEntry 
 
 For Each atxtEntry In ActiveDocument.AttachedTemplate.AutoTextEntries 
 If atxtEntry.Name = "Filename" Then _ 
 MsgBox "The Filename AutoText entry exists." 
 Next atxtEntry 
End Sub

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.