今天领导吩咐要将一个有一千多图的Word文档中的图片修改为统一尺寸,本着不会找度娘的心态,发现用Word宏是最简单的方法,现在记录一下!
直接开始,Word-视图-宏-查看宏,或者ALT+F8

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

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

宏代码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保存,然后点击运行即可,方便快捷!