Partager via


Filtrage de la liste des blocs de construction dans un contrôle de contenu

Lorsque vous utilisez des contrôles de contenu avec des blocs de construction, vous pouvez aider les utilisateurs en indiquant le contenu qu’ils peuvent insérer et en limitant leurs choix. Pour ce faire, vous pouvez filtrer la liste des blocs de construction affichés pour un contrôle de contenu. Pour filtrer une liste de blocs de construction pour un contrôle de contenu, vous utilisez la propriété BuildingBlockType pour le contrôle de contenu. Vous pouvez filtrer davantage la liste des blocs de construction en définissant la propriété BuildingBlockCategory pour le contrôle de contenu.

Vous pouvez filtrer la liste des blocs de construction pour un contrôle de contenu lorsque vous créez ce contrôle. Mais vous pouvez également procéder par programme en prenant comme critère la position du curseur ou la valeur d’un autre contrôle de contenu. Vous avez besoin au départ d’une galerie de blocs de construction personnalisée. Pour savoir comment créer cette galerie, voir Créer une galerie de blocs de construction personnalisée.

Exemple 1

L'exemple suivant montre comment filtrer une liste de blocs de construction en utilisant comme critère une galerie spécifique.

Remarque

[!REMARQUE] Avant d'exécuter le code de cette rubrique, vous devez exécuter le code de la rubrique « Créer une galerie de blocs de construction personnalisée ».

Sub CreateFilteredContentControl_SampleOneA() 
 Dim objCC As ContentControl 
 
 Set objCC = ActiveDocument.ContentControls.Add( _ 
 wdContentControlBuildingBlockGallery, Selection.Range) 
 
 objCC.BuildingBlockType = wdTypeCustom1 
End Sub

Pour restreindre encore la liste, vous pouvez également filtrer les blocs de construction en spécifiant une catégorie dans la galerie. L'exemple suivant montre comment inclure uniquement les blocs de construction appartenant à une catégorie donnée de la galerie spécifiée.

Sub CreateFilteredContentControl_SampleOneB() 
 Dim objCC As ContentControl 
 
 Set objCC = ActiveDocument.ContentControls.Add( _ 
 wdContentControlBuildingBlockGallery, Selection.Range) 
 
 objCC.BuildingBlockType = wdTypeCustom1 
 objCC.BuildingBlockCategory = "Tertiary Headings" 
End Sub

Exemple 2

Pour filtrer une liste de blocs de construction en fonction de la position du curseur, vous devez utiliser l'événement ContentControlOnEnter. Par exemple, si vous avez un contrôle de contenu appelé Report Type (Type de rapport) pouvant prendre la valeur « financial » (financier) ou « marketing », vous pouvez définir un contrôle de contenu de bloc de construction affichant la liste des avertissements possibles. Ce contrôle affichera tous les avertissements si le type de rapport n'est pas défini ou uniquement le sous-ensemble approprié si la propriété est définie. L'exemple suivant montre comment filtrer la liste des blocs de construction pour un contrôle de contenu en prenant comme critère la valeur d'un autre contrôle de contenu du document.

Private Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl) 
 Dim objCC As ContentControl 
 Dim objType As ContentControl 
 
 Set objCC = ContentControl 
 Set objType = ActiveDocument.ContentControls.Item("Report Type") 
 
 If objCC.Title = "Disclaimer" Then 
 Select Case objType.Range.Text 
 Case "Financial" 
 objCC.BuildingBlockType = wdTypeCustom1 
 objCC.BuildingBlockCategory = "Financial Disclaimers" 
 
 Case "Marketing" 
 objCC.BuildingBlockType = wdTypeCustom1 
 objCC.BuildingBlockCategory = "Marketing Disclaimers" 
 
 End Select 
 End If 
End Sub

Voir aussi

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.