Please Note: This article is written for users of the following Microsoft Word versions: 97, 2000, 2002, and 2003. If you are using a later version (Word 2007 or later), this tip may not work for you. For a version of this tip written specifically for later versions of Word, click here: Determining Picture Size in a Macro.
Written by Allen Wyatt (last updated July 26, 2021)
This tip applies to Word 97, 2000, 2002, and 2003
Word keeps quite a bit of information together about the images that you insert in your documents. This information is necessary so that Word knows how to size, position, and display images. If you want to find out more information about the images in your document, then you need to know something about how Word stores the information.
Images are stored as either of two types of graphic objects: regular shapes or inline shapes. Regular shapes are those that reside on the drawing layer, as opposed to inline shapes, which reside in the text layer. Both types of objects are stored with different object collections. Regular shapes are in the Shapes collection, and inline shapes are stored in the InlineShapes collection. To access information about the objects, you just need to use a little VBA.
The following VBA macro will work in Word 2000 (or later versions) to create a document that displays the size of all the graphics objects within a document, in both points and 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
This macro doesn't work in Word 97 because Word 97 does not recognize the PointsToPixels statement. If you remove the lines that use this statement (or create your own PointsToPixels function), then the macro will work just fine under Word 97.
Note that the macro returns the names of regular shapes, but not the names of inline shapes. The reason for this is that Word doesn't maintain the names of inline shapes. When you insert a regular shape in your document (again, on the drawing layer), then Word assigns a name to the shape, such as Rectangle 2 or Oval 3.
Note:
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (1497) applies to Microsoft Word 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Word (Word 2007 and later) here: Determining Picture Size in a Macro.
The First and Last Word on Word! Bestselling For Dummies author Dan Gookin puts his usual fun and friendly candor back to work to show you how to navigate Word 2013. Spend more time working and less time trying to figure it all out! Check out Word 2013 For Dummies today!
Word allows you to easily place graphics in a document. Placing one or two graphics is easy, but placing many graphics in ...
Discover MoreThere are all sorts of file formats used to store graphics. You might think that one of those formats is the MPF format, ...
Discover MoreWord documents can contain more than just words. They can also contain drawing objects such as lines and simple shapes. ...
Discover MoreFREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
2018-10-19 05:00:03
Tom Mukaiw
I hope you can help me. I am reading a word document from top to bottom and I need to know when I have come upon a picture, copy it and paste it into another document. How do I know this so that I can paste it into the correct place in the other document?
Got a version of Word that uses the menu interface (Word 97, Word 2000, Word 2002, or Word 2003)? This site is for you! If you use a later version of Word, visit our WordTips site focusing on the ribbon interface.
Visit the WordTips channel on YouTube
FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2024 Sharon Parq Associates, Inc.
Comments