批量将Word已插入图片修改大小

今天领导吩咐要将一个有一千多图的Word文档中的图片修改为统一尺寸,本着不会找度娘的心态,发现用Word宏是最简单的方法,现在记录一下!

直接开始,Word-视图-宏-查看宏,或者ALT+F8

uTools 1632447960477 - 批量将Word已插入图片修改大小

没用过的就直接创建,用过的可以创建,也可以编辑修改。

uTools 1632447983080 - 批量将Word已插入图片修改大小

录入宏代码,然后运行就可以了!

uTools 1632448035256 - 批量将Word已插入图片修改大小

宏代码1:

功能:按照固定大小缩放,不锁定纵横比

Sub 批量设置图片格式()
 ' 批量设置图片格式 宏
 '定义变量
 Dim picwidth
 Dim picheight
 On Error Resume Next '忽略错误
 '按照固定大小缩放
 picheight = 10  '单位厘米,可修改
 picwidth = 2.5  '单位厘米,可修改
 ''类型1:嵌入式图形 InlineShapes类型图片
 For Each Shape In ActiveDocument.InlineShapes
 'msoFalse是不锁定纵横比
 'Shape.LockAspectRatio = msoFalse
 '按照固定大小缩放
 'Shape.Height = picheight * 28.35 '设置图片高度为 10cm (1cm等于28.35px)
 'Shape.Width = picwidth * 28.35 '设置图片宽度8cm
 Next
 ''类型2:非嵌入式图形,Shapes类型图片
 For Each Shape In ActiveDocument.Shapes
 'msoFalse是不锁定纵横比
 Shape.LockAspectRatio = msoFalse
 '按照固定大小缩放
 Shape.Height = picheight * 28.35 '设置图片高度为 10cm (1cm等于28.35px)
 Shape.Width = picwidth * 28.35 '设置图片宽度8cm
 Next
 End Sub

宏代码2:

功能:按照高(宽)设置尺寸,锁定纵横比

Sub 批量设置图片格式()
 '
 ' 批量设置图片格式 宏
 '
 '
 '定义变量
 Dim picwidth
 Dim picheight
 On Error Resume Next '忽略错误
 '按照固定大小缩放,保持比例
 picheight = 10  '单位厘米,可修改
 picwidth = 2.5  '单位厘米,可修改
 ''类型1:嵌入式图形 InlineShapes类型图片
 For Each Shape In ActiveDocument.InlineShapes
 '按照固定大小缩放, 两行删一行即可
 Shape.Height = picheight * 28.35 '设置图片高度为 10cm (1cm等于28.35px)
 Shape.Width = picwidth * 28.35 '设置图片宽度8cm
 Next
 ''类型2:非嵌入式图形,Shapes类型图片
 For Each Shape In ActiveDocument.Shapes
 '按照固定大小缩放, 两行删一行即可
 Shape.Height = picheight * 28.35 '设置图片高度为 10cm (1cm等于28.35px)
 Shape.Width = picwidth * 28.35 '设置图片宽度8cm
 Next
 End Sub

宏代码3:

功能:按照原尺寸进行比例缩放,锁定纵横比

Sub 批量设置图片格式()
 '
 ' 批量设置图片格式 宏
 '
 '
 '定义变量
 Dim ratio
 On Error Resume Next '忽略错误
 '按照比例缩放
 ratio = 2 '缩放比例,可修改
 ''类型1:嵌入式图形 InlineShapes类型图片
 For Each Shape In ActiveDocument.InlineShapes
 'msoFalse是不锁定纵横比,msoTrue是锁定(默认)。
 Shape.LockAspectRatio = msoTrue
 '按照比例缩放,下面两行,二选一,只留一行
 Shape.Height = shape.Height * ratio  '按高
 Shape.Width = shape.Width * ratio  '按宽
 Next
 ''类型2:非嵌入式图形,Shapes类型图片
 For Each Shape In ActiveDocument.Shapes
 'msoFalse是不锁定纵横比,msoTrue是锁定(默认)。
 Shape.LockAspectRatio = msoTrue
 '按照比例缩放,下面两行,二选一,只留一行
 Shape.Height = shape.Height * ratio
 Shape.Width = shape.Width * ratio
 Next
 End Sub

宏代码4:

功能:嵌入式图片改为非嵌入式

Sub 批量设置图片格式()
 '
 ' 批量设置图片格式 宏
 '
 '
 On Error Resume Next '忽略错误
 ''类型1:嵌入式图形 InlineShapes类型图片
 For Each Shape In ActiveDocument.InlineShapes
 '可选,设置图片居中
 'Shape.Range.Select
 'Selection.ClearFormatting '图片行距=1,如果Word中图片设置了行距不是1,比如固定值30磅,则无论图片设置什么格式,嵌入式会造成只显示一部分图片。
 'Selection.Range.Paragraphs.Alignment = wdAlignParagraphCenter '图片居中, wdAlignParagraphLeft是左对齐
 '嵌入式图片改为非嵌入式
 Set Shape = Shape.ConvertToShape
 Shape.WrapFormat.Type = 0 '图片版式:0=四周型,1=紧密型,3=衬于文字下方,4=浮于文字上方,Default 0
 Shape.WrapFormat.AllowOverlap = False '不允许重叠
 Next
 End Sub

4种代码根据需要选择使用,自己修改里面的大小、类型,完成后记得Ctrl+S保存,然后点击运行即可,方便快捷!