Tout d'abord, il faut savoir que la position d'une image avec habillage est toujours relative à quelque chose : à la marge, à la page, au paragraphe... 

Par défaut, la position de cette image est relative au paragraphe auquel elle est ancrée. Je rappelle qu'une image avec habillage est toujours ancrée à un paragraphe. Voir ici pour plus d'explications.

Donc, dans le code, soit on ne précise rien et l'image sera aucrée au paragraphe, soit on précise une valeur pour les propriétés RelativeHorizontalPosition et RelativeVerticalPosition. 

NB :  On peut très bien décider d'avoir une position horizontale une verticale par rapport à des éléments différents. Il y a donc lieu d'utiliser les deux propriétés.

Voici les valeurs de ces deux propriétés :

  • Marge : 0
  • Page : 1
  • Colonne : 2
  • Marge de gauche 4
  • Marge de droite : 5

La position est déterminée par défaut en points. Mais, bien entendu il est plus simple de la donner en centimètres (ou en pouces pour l'Outre Atlantique par rexemple). Dans ce cas on utilise le paramètre CentimetersToPoints pour les centimètres et le paramètre InchesToPoints pour les pouces.

Concernant la taille de l'image, si l'on souhaite en imposer une, le mieux est d'utiliser la propriété LockAspectRatio afin de conserver l'échelle de l'image et ne pas la déformer. On indiquera donc seulement la largeur (Width) OU la hauteur (Height)

L'exemple suivant insère l'image nommée "mon_image.jpg" qui se trouve sur le lecteur P. Cette image sera positionnée à 7 cm du bord gauche de la page et 3 centimètres de la marge du haut. Elle mesurera 2 cm de hauteur et conservera son échelle.

 

Sub insere_image()
'macro écrite par m@rina
Dim image As Shape
Set image = ActiveDocument.Shapes.AddPicture(FileName:="P:\mon_image.jpg")

With image
.RelativeHorizontalPosition = 1
.RelativeVerticalPosition = 0
.Left = CentimetersToPoints(7)
.Top = CentimetersToPoints(3)
.LockAspectRatio = msoTrue
.Height = CentimetersToPoints(2)
End With
End Sub

 

 

Statistiques

Aujourd'hui295
Hier2620
Cette semaine10763
Total depuis 20049549303

31
visiteurs actuellement en ligne