Avec une macro.
On peut bien entendu masquer "à la main". Mais il sera plus pratique de créer une macro reliée à un bouton, afin de passer rapidement de l'état masqué à l'état non masqué, dans le but, par exemple, d'imprimer sans le contrôle.
Microsoft n'a pas prévu de propriétés VBA qui nous diraient si le contrôle est rempli, complété, etc. ou non. Par contre, on peut vérifier si le texte du contrôle est le texte par défaut.
Voici donc une macro qui masque le contrôle tant que celui-ci affiche ce texte. Dans le cas inverse, le contrôle ne sera pas masqué.
Vous pouvez bien sûr l'adapter aux autres contrôles de contenu.
Macro pour le premier contrôle du document ou le contrôle sélectionné :
Sub masquer()
'macro écrite par m@rina
Dim controle As ContentControl
Dim cont_texte
Set controle = ActiveDocument.ContentControls.Item(1)
cont_texte = controle.Range
If cont_texte = controle.PlaceholderText Then
controle.Range.Font.Hidden = True
Else: controle.Range.Font.Hidden = False
End If
End Sub
Macro pour l'ensemble des contrôles du document :
Vous noterez que sont exclus les contrôle Case à cocher puisque, d'une part, il n'y a pas de texte, et d'autre part, une case décochée ne signifie pas que le contrôle n'est pas complété.
Sub masquer2()
'macro écrite par m@rina
Dim controle As ContentControl
Dim cont_texte
For Each controle In ActiveDocument.ContentControls
If controle.Type <> wdContentControlCheckBox Then
cont_texte = controle.Range
If cont_texte = controle.PlaceholderText Then
controle.Range.Font.Hidden = True
Else: controle.Range.Font.Hidden = False
End If
End If
Next
End Sub