Micro Macro

Ce midi: un document Microsoft Word créé à partir d’une page web et contenant quelques dizaines d’images. Le problème: les images sont trop grandes pour une mise en page du document en format A4. Solution? Réduire toutes les images à 50% de leur taille. Le sous-problème? Ca fait pas mal de click à faire… Meilleure solution? Une macro!

Le sous-sous-problème: La macro créé par Word par la fonction « Enregistrer une nouvelle macro » ne fonctionne pas: la macro contient en fait une mise à jour de tous les paramètres de l’image -pas simplement une réduction de la taille relative-  avec pour conséquence une distorsion de toutes les images qui n’auraient pas le même rapport d’aspect que la photo utilisée pour enregistrer la macro. Inacceptable!

Une rapide édition manuelle de la macro, dans l’éditeur Visual Basic inclus permet de corriger cela en supprimant la plupart des lignes et en dupliquant la ligne hauteur pour l’adapter à la largeur, et cela marche! Attention, cela ne s’applique cependant qu’à une image dans le flux du texte (inline) et pas à une image dissociée (shape). La macro finale:

Sub ResizePictureFiftyPercent()
'
' ResizePictureFiftyPercent Macro
'
'
    Selection.InlineShapes(1).Height = 0.5 * Selection.InlineShapes(1).Height
    Selection.InlineShapes(1).Width = 0.5 * Selection.InlineShapes(1).Width
End Sub

Finalement, associer un raccourci clavier à la macro pour éviter de devoir cliquer dans le menu pour l’exécuter.

Vous me direz: et pourquoi ne pas améliorer la macro pour qu’elle réduise directement la taille de toutes les images du document? Parce que le mieux est l’ennemi du bien, surtout lorsque le mieux est plus compliqué à réaliser et potentiellement ne devra pas être réutilisé. Ou simplement parce que certaines images ne doivent pas être réduites et parce que je dois parcourir l’ensemble du document pour d’autres petites modifications manuelles…

Cet article a été publié dans ordinateur avec les mots-clefs : , , , , . Bookmarker le permalien. Les commentaires et les trackbacks sont fermés.