Working with the Crop Property and Shapes in Office 2010
Programmatically Working with Shapes in Office 2010: Learn how to update a Microsoft Word 2010 chart by changing various settings of the title.
Applies to: Microsoft Word 2010
Published: April 2011
Provided by: Frank Rice, Microsoft Corporation
Microsoft Office 2010 includes the ability to work with many kinds of art shapes. For example, some examples of shapes include lines, connectors, basic shapes, flowchart elements, stars and banners, and callouts. You can improve and manipulate the appearance of shapes programmatically with various classes and object. In this topic, you programmatically create an image and then use various properties to crop the image. To complete this task, you must do the following:
Add a Standard Module to a Word Document
In this task, you open a Word 2010 document, open the Visual Basic Editor, and then insert a standard module.
To add a standard module to a Word document
Start Word 2010.
On the Developer tab, click Visual Basic. This opens the Visual Basic Editor.
If you do not see the Developer tab in Word 2010, click the File tab, and then click Options. In the categories pane, click Customize Ribbon, select Developer, and then click OK.
On the Insert menu, click Module. This adds Module1 to the Projects pane on the left side of the Visual Basic Editor.
Add the Code to the Visual Basic Editor
In this task, you add programming code that creates an image. The code then sets various properties of the Corp property object.
To add code to the Visual Basic Editor
In the Projects pane, click Module1.
Paste or type the following Microsoft Visual Basic for Applications (VBA) code into the module window.
Sub CropDemo() ' Put your own image path in here. This image path ' should work for standard Windows 7 installations. Const fileName As String = "C:\Windows\Web\Wallpaper\Landscapes\img10.jpg" With ActiveDocument Dim shp As Shape Set shp = ActiveDocument.Shapes.AddPicture(fileName, msoFalse, msoTrue) shp.Line.Visible = True ' Retrieve the dimensions of the shape: Dim picWidth As Double Dim picHeight As Double picWidth = shp.Width picHeight = shp.Height With shp.PictureFormat.Crop ' Modify the picture itself, not its container: ' Shift the picture 10% to the right and down, ' and then make the picture 90% of its original size. .PictureOffsetX = picWidth / 10 .PictureOffsetY = picHeight / 10 .PictureHeight = picHeight * 0.9 .PictureWidth = picWidth * 0.9 ' Now modify the cropping by changing the shape ' of the container. Changing the shape alters ' the portion of the picture that you see: .ShapeHeight = 100 .ShapeWidth = 100 .ShapeLeft = 100 .ShapeTop = 150 End With End With End Sub
Test the Solution
In the following steps, you step through the code that creates a picture and then uses various properties of the Crop property object to crop the image. The best way to see the code in action is to place the Visual Basic Editor window and the Word window side-by-side.
To step through the code
Drag the Visual Basic Editor to the right side of the screen.
Next, drag the Word window to the left side of the screen and adjust both windows until you can see both.
Now, place the cursor in the CropDemo module and then press F8 to step through the code line-by-line.