Pour les images déjà insérées, on les sélectionne puis, via une macro, on peut leur imposer un format particulier, comme expliqué par exemple ici.
Maintenant, si l'on souhaite que le format soit appliqué dès l'insertion de l'image, on peut aussi créer une macro. Cette macro remplacera la fonction d'insertion de l'image. On peut donc lui attribuer un raccourci clavier, ou bien l'installer sur la barre d'outils Accès rapide ou sur le ruban.
Word
La macro suivante ouvre la boîte de dialogue d'insertion d'image, puis insère l'image choisie avec une largeur de 5 cm. Cette macro respecte l'échelle de l'image afin que cette dernière ne soit pas déformée. Vous pouvez choisir soit d'imposer la largeur (5 cm dans cet exemple) ou d'imposer la hauteur. Pour la hauteur, supprimez la ligne qui commence par ".width = ", supprimez l'apostrophe avant la ligne qui commence par 'Height = ", et remplacez "xx" par la taille en cm de votre choix.
Quel que soit votre choix (modification de la largeur ou de la hauteur), la taille de l'image sera modifiée dans son ensemble, l'image ne sera jamais déformée.
Vous noterez que cette macro insère l'image avec un alignement sur le texte, donc sans habillage. C'est préférable quand il n'y a pas d'obligation d'habillage qui pose bien souvent des problèmes avec la mise en page. Néanmoins si vous tenez systématiquement à l'habillage, remplacez la ligne
Set image = Selection.InlineShapes.AddPicture(nom_fichier)
par :
Set image = Selection.Shapes.AddPicture(nom_fichier)
Sub image()
'macro écrite par m@rina
Dim b_dial As Dialog
Dim nom_fichier As String
Dim image As Object
Set b_dial = Dialogs(wdDialogInsertPicture)
With b_dial
.Display
If .Name = "" Then Exit Sub
nom_fichier = .Name
End With
Set image = Selection.InlineShapes.AddPicture(nom_fichier)
With image
.LockAspectRatio = msoTrue
'.Height = CentimetersToPoints(xx)
.Width = CentimetersToPoints(5)
End With
End Sub
PowerPoint
La macro suivante ouvre la boîte de dialogue d'insertion de fichier, puis insère l'image choisie avec une largeur de 300 points. Cette macro respecte l'échelle de l'image afin que cette dernière ne soit pas déformée. Vous pouvez choisir soit d'imposer la largeur ou d'imposer la hauteur. Pour la hauteur, supprimez la ligne "image.Width =", et remplacez par "image.Height = " et mettez la taille en pts de votre choix.
Quel que soit votre choix (modification de la largeur ou de la hauteur), la taille de l'image sera modifiée dans son ensemble, l'image ne sera jamais déformée.
Vous noterez que cette macro insère l'image à un endroit précis depuis le bord gauche et le haut. C'est obligatoire avec PowerPoint, vous pouvez changer toutes ces valeurs (Left et Top).
Sub image()
'macro écrite par m@rina
Dim b_dial As FileDialog
Dim nom_fichier As String
Dim image As Object
Set b_dial = Application.FileDialog(msoFileDialogFilePicker)
b_dial.AllowMultiSelect = False
With b_dial
.AllowMultiSelect = False
.Filters.Add "Picture", "*.jpg;*.png"
.Show
If .SelectedItems.Count = 0 Then Exit Sub
nom_fichier = .SelectedItems(1)
End With
ActiveWindow.Selection.SlideRange.Shapes.AddPicture(FileName:=nom_fichier, linktofile:=msoFalse, SaveWithDocument:=msoTrue, Left:=10, Top:=10).Select
Set image = ActiveWindow.Selection.ShapeRange
image.Width = 300
'image.Height = 150
End Sub