Recherche

Word

Tout d'abord, si l'on veut indiquer la position précise de l'image, cela sous-entend image avec habillage. Dans le cas inverse l'image est insérée comme un caractère.

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

Pour Word et 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 ancré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 exemple). 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

France 75,2% France
Canada 8,3% Canada
États-Unis d'Amérique 5,2% États-Unis d'Amérique

Total:

60

Pays
018271448
Aujourd'hui: 131
Hier: 112
Cette semaine: 514
Semaine dernière: 1.101
Ce mois: 4.245