Word上百张图片调大小一致,你只会手动输入尺寸?那你不加班谁加班?———看我如何3秒搞定!
一、背景介绍
昨天处理一个word文档,里面包含大量的图片(上百张图片),为了排版美观,想把所有图片大小调整一致,手动调整大小是可以的,但太慢了,如何快速批量调整图片大小?
二、解决办法
我首先想到的是用VBA代码处理,但我不会编写word的 VBA,那怎办?当然找AI帮忙啊!
下面就是豆包给出的答案,VBA代码亲测有效,需要的小伙伴可以直接使用。
🔈🔈🔈🔈🔈🔈🔈🔈🔈🔈🔈🔈🔈🔈
一、手动操作方法(适合少量图片)
1. 打开Word文档,按下 Ctrl+A 全选所有内容(或按住 Ctrl 键逐个点击图片选中多图)。
2. 选中图片后,点击顶部菜单栏的【图片格式】(或【格式】)选项卡。
3. 在【大小】组中,先清空“形状高度”和“形状宽度”旁的锁定纵横比按钮(小锁图标),确保宽高比不锁定。
4. 分别在“宽度”输入框输入 24厘米 ,“高度”输入框输入 13厘米 ,按下回车即可。
注意:手动操作时若图片数量多,逐个/批量选中容易遗漏,推荐用VBA批量处理。
二、VBA代码批量修改(高效、精准)
1. 代码使用步骤
1. 打开需要处理的Word文档,按下 Alt+F11 打开VBA编辑器。
2. 右键点击左侧“工程资源管理器”中的文档名称 → 插入 → 模块。
3. 将下方代码复制粘贴到模块窗口中。
4. 按下 F5 运行代码,或点击编辑器顶部的“运行”按钮。
2. 完整VBA代码如下
❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️
Sub 统一设置图片尺寸()
‘ 声明变量
Dim shp As InlineShape
Dim doc As Document
Set doc = ActiveDocument
‘ 关闭屏幕刷新,提升运行速度
Application.ScreenUpdating = False
On Error Resume Next ‘ 忽略个别图片的异常(如嵌入式/浮动式兼容)
‘ 处理嵌入式图片(Word中最常见的图片类型)
For Each shp In doc.InlineShapes
If shp.Type = wdInlineShapePicture Then ‘ 仅处理图片类型,排除其他嵌入式对象
‘ 取消锁定纵横比(关键:否则尺寸会按比例缩放,无法精准设置)
shp.LockAspectRatio = msoFalse
‘ 设置宽度为24厘米(Word VBA中默认单位是磅,24cm≈905.51磅,代码已自动转换)
shp.Width = CentimetersToPoints(24)
‘ 设置高度为13厘米(13cm≈472.44磅)
shp.Height = CentimetersToPoints(13)
End If
Next shp
‘ 处理浮动式图片(可选,避免遗漏)
Dim shapeObj As Shape
For Each shapeObj In doc.Shapes
If shapeObj.Type = msoPicture Then
shapeObj.LockAspectRatio = msoFalse
shapeObj.Width = CentimetersToPoints(24)
shapeObj.Height = CentimetersToPoints(13)
End If
Next shapeObj
‘ 恢复屏幕刷新
Application.ScreenUpdating = True
‘ 提示完成
MsgBox “所有图片已统一设置为24cm×13cm!”, vbInformation, “操作完成”
‘ 释放变量
Set shp = Nothing
Set shapeObj = Nothing
Set doc = Nothing
End Sub
❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️
3. 代码关键说明
– CentimetersToPoints() :Word VBA中尺寸默认单位是“磅(Point)”,该函数将厘米转换为磅,确保尺寸精准。
– LockAspectRatio = msoFalse :取消图片宽高比锁定,这是核心步骤,否则无法强制设置固定宽高(会按原比例缩放)。
– 代码同时处理“嵌入式图片”和“浮动式图片”,覆盖Word中所有图片类型,避免遗漏。
– On Error Resume Next :防止个别特殊图片(如截图、剪贴画)导致代码中断,提升兼容性。
总结
1. 手动操作适合少量图片,核心是取消宽高比锁定后输入目标尺寸;
2. VBA代码可一键批量处理所有图片,覆盖嵌入式/浮动式两种类型,精准设置24cm×13cm;
3. 运行VBA前建议先保存文档,避免操作失误导致数据丢失。
如果运行代码后个别图片未生效,大概率是图片类型特殊(如组合对象),可先将图片“取消组合”后再运行代码。
👆👆👆👆👆👆👆👆👆👆👆👆👆👆
夜雨聆风
