Déterminer la taille de l’image dans une macro (Microsoft Word)
Word conserve un peu d’informations sur les images que vous insérez dans vos documents. Ces informations sont nécessaires pour que Word sache comment dimensionner, positionner et afficher des images. Si vous souhaitez en savoir plus sur les images de votre document, vous devez savoir comment Word stocke les informations.
Les images sont stockées sous deux types d’objets graphiques: des formes régulières ou des formes en ligne. Les formes régulières sont celles qui résident sur le calque de dessin, par opposition aux formes en ligne, qui résident dans le calque de texte. Les deux types d’objets sont stockés avec des collections d’objets différentes. Les formes régulières se trouvent dans la collection Shapes et les formes en ligne sont stockées dans la collection InlineShapes. Pour accéder aux informations sur les objets, il vous suffit d’utiliser un peu de VBA.
La macro VBA suivante fonctionnera dans Word 2000 (ou versions ultérieures) pour créer un document qui affiche la taille de tous les objets graphiques d’un document, en points et en pixels:
Sub FigureInfo() Dim iShapeCount As Integer Dim iILShapeCount As Integer Dim DocThis As Document Dim J As Integer Dim sTemp As String Set DocThis = ActiveDocument Documents.Add iShapeCount = DocThis.Shapes.Count If iShapeCount > 0 Then Selection.TypeText Text:="Regular Shapes" Selection.TypeParagraph End If For J = 1 To iShapeCount Selection.TypeText Text:=DocThis.Shapes(J).Name Selection.TypeParagraph sTemp = " Height (points): " sTemp = sTemp & DocThis.Shapes(J).Height Selection.TypeText Text:=sTemp Selection.TypeParagraph sTemp = " Width (points): " sTemp = sTemp & DocThis.Shapes(J).Width Selection.TypeText Text:=sTemp Selection.TypeParagraph sTemp = " Height (pixels): " sTemp = sTemp & PointsToPixels(DocThis.Shapes(J).Height, True) Selection.TypeText Text:=sTemp Selection.TypeParagraph sTemp = " Width (pixels): " sTemp = sTemp & PointsToPixels(DocThis.Shapes(J).Width, False) Selection.TypeText Text:=sTemp Selection.TypeParagraph Selection.TypeParagraph Next J iILShapeCount = DocThis.InlineShapes.Count If iILShapeCount > 0 Then Selection.TypeText Text:="Inline Shapes" Selection.TypeParagraph End If For J = 1 To iILShapeCount Selection.TypeText Text:="Shape " & J Selection.TypeParagraph sTemp = " Height (points): " sTemp = sTemp & DocThis.InlineShapes(J).Height Selection.TypeText Text:=sTemp Selection.TypeParagraph sTemp = " Width (points): " sTemp = sTemp & DocThis.InlineShapes(J).Width Selection.TypeText Text:=sTemp Selection.TypeParagraph sTemp = " Height (pixels): " sTemp = sTemp & PointsToPixels(DocThis.InlineShapes(J).Height, True) Selection.TypeText Text:=sTemp Selection.TypeParagraph sTemp = " Width (pixels): " sTemp = sTemp & PointsToPixels(DocThis.InlineShapes(J).Width, False) Selection.TypeText Text:=sTemp Selection.TypeParagraph Selection.TypeParagraph Next J End Sub
Cette macro ne fonctionne pas dans Word 97 car Word 97 ne reconnaît pas l’instruction PointsToPixels. Si vous supprimez les lignes qui utilisent cette instruction (ou créez votre propre fonction PointsToPixels), la macro fonctionnera très bien sous Word 97.
Notez que la macro renvoie les noms des formes régulières, mais pas les noms des formes en ligne. La raison en est que Word ne conserve pas les noms des formes en ligne. Lorsque vous insérez une forme régulière dans votre document (encore une fois, sur le calque de dessin), Word attribue un nom à la forme, tel que Rectangle 2 ou Ovale 3.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites WordTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / wordribbon-WordTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
WordTips est votre source pour une formation Microsoft Word rentable.
(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (1497) s’applique à Microsoft Word 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban de Word (Word 2007 et plus tard) ici:
link: / wordribbon-Determining_Picture_Size_in_a_Macro [Détermination de la taille de l’image dans une macro]
.