分享

Word resize all pictures

 沧海九粟 2007-09-12
Scaling Graphics in a Macro

You may have a need to routinely scale graphics in your document by a certain 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 a toolbar button or a shortcut key. The following macro will handle doing the 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 the selected image, offering 75 (75%) as the default. When you specify a percentage, the macro then checks to see if the selected graphic is an inline or a floating graphic. The reason for doing this is that the object specification is different in each case, as well as how the scaling is specified. Inline objects belong to the InlineShapes collection, while floating objects are set using the ShapeRange object.

If you want to resize all the graphics in your document by the same percentage, then you only need to modify the above macro so that it steps through each of the inline graphics and then each of the floating graphics.

    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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多