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.

Determining Picture Size in a Macro

by Allen Wyatt
(last updated May 7, 2016)

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.

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.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He  is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

Creating a Table of Contents from TOC Fields

If you inserted a bunch of TOC fields in your document, you can create your table of contents quite easily based on those ...

Discover More

Previewing Before You Print

Print Preview is a feature built into Word that allows you to see what your printed output will look like before you commit ...

Discover More

Drawing Lines

Lines are one of the most common graphic elements to be added to documents. Here's how you can add the lines you want.

Discover More

Do More in Less Time! Are you ready to harness the full power of Word 2013 to create professional documents? In this comprehensive guide you'll learn the skills and techniques for efficiently building the documents you need for your professional and your personal life. Check out Word 2013 In Depth today!

More WordTips (menu)

Dragging and Dropping Pictures in a Document

Do you like to add pictures to your document just by dragging and dropping? What are you to do if it appears the capability ...

Discover More

Working With OLE Graphics

An explanation of the way Word imports graphics.

Discover More

Searching and Replacing Graphics

Got a bunch of graphics in a document that need replacing? (Perhaps you need to replace an old logo with a new one.) Word ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 8Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is eight more than 8?

There are currently no comments for this tip. (Be the first to leave your comment—just use the simple form above!)


This Site

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.

Newest Tips
Subscribe

FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.