Cette fonctionnalité n'existe pas dans Word, toutefois ce tuto vous explique comment rendre ceci possible. Je précise toutefois que si cette solution va fonctionner avec un clic, n'espérez pas la faire fonctionne avec juste le survol de la souris.

Explications pour l'exemple fourni.

À vous ensuite de personnaliser.

  • L'idée est d'avoir un texte sur la partie gauche et de faire apparaître les objets dans la partie droite. Donc, selon le document, on modifie soit la valeur de la marge de gauche, soit on met un retrait gauche.

  • Chaque mot à cliquer sera inséré dans un contrôle de contenu de texte (Onglet Développeur, groupe Contrôles).

  • Pour simplifier la macro, donnez comme titre à ces mots un nom avec un numéro. Dans notre exemple : mot1, mot2, mot3, etc.

  • Insérez l'objet qui correspond au mot, donnez lui un habillage et positionnez-le dans la partie droite du document.

  • Affichez le volet de sélection (onglet Accueil, groupe Modification => Sélectionner => Volet Sélection. Dans ce volet, vous voyez votre objet. Sélectionnez-le et changez son nom. Donnez pour chaque objet le même nom que le mot correspondant. Ainsi, dans notre exemple, vous retrouvez mot1, mot2 et mot3.

  • Toujours dans le volet de Sélection, cliquez sur Masquer tout de façon à faire disparaître tous les objets du document. Vous pouvez ensuite fermer ce volet.

Passons aux macros qui sont au nombre de deux, l'une pour faire apparaître les objets, l'autre pour les faire disparaître. Ces macros seront à copier et à coller dans le module ThisDocument (voir ici) :

Private Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl)
Dim x, y
= ActiveDocument.ContentControls.Count
For x = 1 To y
If ContentControl.Title = "mot" & x Then ActiveDocument.Shapes("mot" & x).Visible = msoTrue
Next
End Sub

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
Dim x, y
= ActiveDocument.ContentControls.Count
For x = 1 To 3
If ContentControl.Title = "mot" & x Then ActiveDocument.Shapes("mot" & x).Visible = msoFalse
Next
End Sub
 

Et voilà, il ne vous reste plus qu'à tester.