Imaginons un document dans lequel vous avez inséré un bon nombre de photos. Si vous souhaitez leur ajouter à toutes une légende, une macro fera ce travail rapidement.

Je rappelle qu'il existe deux types d'images, celles qui sont alignées sur le texte et celles qui ont un habillage (images flottantes).

Pour les images alignées sur le texte :

 Sub photos()
'macro écrite par m@rina
Dim image As InlineShape
'ajout de l'étiquette "Photographie"
CaptionLabels.Add Name:="Photographie"
For Each image In ActiveDocument.InlineShapes
If image.Type = wdInlineShapePicture Then
image.Select
Selection.InsertCaption Label:="Photographie", Position:=wdCaptionPositionBelow
End If
Next
End Sub

Pour les images avec habillage :

Pour cette macro, on va commencer par compter le nombre d'images et boucler uniquement sur ce nombre. Ne pas utiliser le même type de boucle que dans la macro précédente, sinon risque de boucle infinie !

Sub photos2()
'macro écrite par m@rina
Dim image As Shape
'ajout de l'étiquette "Photographie"
CaptionLabels.Add Name:="Photographie"
For x = 1 To ActiveDocument.Shapes.Count
If ActiveDocument.Shapes(x).Type = msoPicture Then
ActiveDocument.Shapes(x).Select
Selection.InsertCaption Label:="Photographie", Position:=wdCaptionPositionBelow
End If
Next
End Sub

 

Notez que si l'étiquette souhaitée ne fait pas partie des étiquettes existantes soit par défaut, soit parce que vous l'avez déjà utilisée, vous devez l'ajouter avant dans la macro comme je l'ai fait ici pour l'étiquette "Photographie"

CaptionLabels.Add Name:="Photographie"

Sinon, vous aurez une erreur.

 

NB: ces macros vont insérer une légende aux images. Pour ajouter une légende à d'autres types d'objets graphique, il faudra en préciser le type.