加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

word根据纸张大小自动缩放图片

(2022-06-23 14:04:28)
标签:

word

图片

缩放

分类: Microsoft技术


Sub setpicsize() '批量缩放Word图片
    Dim mmpx    'mm 转换成 像素的 参数
    mmpx = 2.835
    Dim n '图片个数
    Dim picwidth    '图片宽度
    Dim picheight   '图片高度
    Dim pagewidth
    Dim pageheight
    Dim TopMargin
    Dim BottomMargin
    Dim LeftMargin
    Dim RightMargin
    Dim usefulwidth
    Dim usefulheight
    pagewidth = ActiveDocument.PageSetup.pagewidth
    pageheight = ActiveDocument.PageSetup.pageheight
    TopMargin = ActiveDocument.PageSetup.TopMargin
    BottomMargin = ActiveDocument.PageSetup.BottomMargin
    LeftMargin = ActiveDocument.PageSetup.LeftMargin
    RightMargin = ActiveDocument.PageSetup.RightMargin
    usefulwidth = pagewidth - LeftMargin - RightMargin
    usefulheight = pageheight - TopMargin - BottomMargin
    Dim s
    'MsgBox TopMargin, vbOKOnly
    'Exit Sub
    On Error Resume Next '忽略错误
    For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片
        picheight = ActiveDocument.InlineShapes(n).Height   '获取图片高度(像素值)
        picwidth = ActiveDocument.InlineShapes(n).Width     '获取图片宽度(像素值)
        
        '设置宽度适合文档大小
        '(420/picwidth)为缩放比例
        '其中,420为Word中A4纸默认工作宽度(估计值。。。)
        If usefulheight / picheight >= usefulwidth / picwidth Then
          s = usefulwidth / picwidth
        Else
          s = usefulheight / picheight
        End If
        ActiveDocument.InlineShapes(n).Width = picwidth * s   '缩放宽度
        ActiveDocument.InlineShapes(n).Height = picheight * s '同比例缩放高度
        
    Next n
    
    For n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片
        picheight = ActiveDocument.Shapes(n).Height
        picwidth = ActiveDocument.Shapes(n).Width
        
        ActiveDocument.Shapes(n).Width = picwidth * s   '同上
        ActiveDocument.Shapes(n).Height = picheight * s '同上
        
    Next n
End Sub


'
'Word中的尺寸单位默认是cm(厘米),而1cm等于28.35px(像素),由于代码中换算设置的单位是px(像素)。所以就用尺寸高度或宽度值乘像素值。即为:7*28.35=198.45;宽度换算方法与此相同。
'

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有