Word resize all pictures

来源:百度文库 编辑:神马文学网 时间:2024/05/02 10:50:14
Scaling Graphics in a Macro
You may have a need to routinely scale graphics in your document by acertain percentage. Using the menus to do the scaling can get tiresome,so you may want to do the scaling by using a macro you can assign to atoolbar button or a shortcut key. The following macro will handle doingthe scaling very nicely:
Sub PictSize()
Dim PecentSize As Integer
PercentSize = InputBox("Enter percent of full size", "Resize Picture", 75)
If Selection.InlineShapes.Count > 0 Then
Selection.InlineShapes(1).ScaleHeight = PercentSize
Selection.InlineShapes(1).ScaleWidth = PercentSize
Else
Selection.ShapeRange.ScaleHeight Factor:=(PercentSize / 100), _
RelativeToOriginalSize:=msoCTrue
Selection.ShapeRange.ScaleWidth Factor:=(PercentSize / 100), _
RelativeToOriginalSize:=msoCTrue
End If
End Sub
The macro first asks for a percentage by which you want to scale theselected image, offering 75 (75%) as the default. When you specify apercentage, the macro then checks to see if the selected graphic is aninline or a floating graphic. The reason for doing this is that theobject specification is different in each case, as well as how thescaling is specified. Inline objects belong to the InlineShapescollection, while floating objects are set using the ShapeRange object.
If you want to resize all the graphics in your document by the samepercentage, then you only need to modify the above macro so that itsteps through each of the inline graphics and then each of the floatinggraphics.
Sub AllPictSize()
Dim PecentSize As Integer
Dim oIshp As InlineShape
Dim oshp As Shape
PercentSize = InputBox("Enter percent of full size", "Resize Picture", 75)
For Each oIshp In ActiveDocument.InlineShapes
With oIshp
.ScaleHeight = PercentSize
.ScaleWidth = PercentSize
End With
Next oIshp
For Each oshp In ActiveDocument.Shapes
With oshp
.ScaleHeight Factor:=(PercentSize / 100), _
RelativeToOriginalSize:=msoCTrue
.ScaleWidth Factor:=(PercentSize / 100), _
RelativeToOriginalSize:=msoCTrue
End With
Next oshp
End Sub