Word VBA 教程|一键将 PNG/JPG 图片插入每一页(浮于文字上方,固定大小)
本文适合需要在 Word 文档的每一页自动插入图片(如公章、水印、标志等)的用户,使用 VBA 代码实现自动批量插入,省时省力!
🧠 应用场景
日常办公中,我们常需要在 Word 的每一页插入同一张图片,例如:
- 插入电子章或公司印章
- 添加审核签字图标
- 插入公司 Logo 或图片作为签发标记
如果你逐页手动插入,不仅耗时,还容易漏页。而使用 VBA 宏代码,仅需一次点击,即可完成批量操作!
🛠️ 功能说明
- ✅ 支持插入 PNG 或 JPG 图片
- ✅ 自动插入至每一页
- ✅ 图片设置为“浮于文字上方”,不遮挡内容排版
- ✅ 可设置图片尺寸(如 6.5cm × 6.5cm)
- ✅ 可自定义位置(如页面居中、右下角等)
📋 操作步骤
第一步:打开 Word 的 VBA 编辑器
- 打开你的 Word 文档
- 按下快捷键
Alt + F11
,进入 VBA 编辑器 - 在左侧找到 “ThisDocument”,双击打开
- 将以下代码粘贴进去
第二步:复制粘贴 VBA 代码
Sub InsertImageOnEveryPage()
Dim i As Long
Dim totalPages As Long
Dim imgPath As String
Dim rng As Range
Dim shp As Shape
' ✅ 修改为你的 PNG 或 JPG 图片的完整路径
imgPath = "G:\桌面\红章.png" ' 示例路径,建议使用绝对路径
' 校验图片是否存在
If Dir(imgPath) = "" Then
MsgBox "图片路径无效,请确认路径是否正确。", vbExclamation
Exit Sub
End If
' 获取文档总页数
totalPages = ActiveDocument.ComputeStatistics(wdStatisticPages)
' 循环每一页插入图片
For i = 1 To totalPages
Set rng = ActiveDocument.GoTo(What:=wdGoToPage, Name:=i)
Set shp = ActiveDocument.Shapes.AddPicture( _
FileName:=imgPath, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Anchor:=rng)
' 设置图片属性
With shp
.WrapFormat.Type = wdWrapFront ' 浮于文字上方
.LockAspectRatio = msoFalse ' 取消宽高锁定
.Width = CentimetersToPoints(6.5) ' 宽度 6.5cm
.Height = CentimetersToPoints(6.5) ' 高度 6.5cm
.Left = wdShapeCenter ' 水平居中
.Top = 200 ' 距页面顶部 200 磅(可调)
End With
Next i
MsgBox "图片已成功插入每一页,大小为6.5cm × 6.5cm。"
End Sub
第三步:运行宏
- 按下
F5
,或点击工具栏上的 “运行” - 稍等几秒,图片即会自动插入每一页!
🧩 参数说明与可扩展
参数 | 含义 | 示例值 |
---|---|---|
imgPath |
图片路径(必须是绝对路径) | "C:\图片\logo.jpg" |
.Top |
与页面顶部距离(单位:磅) | 50 、200 可调位置 |
.Left |
水平位置 | wdShapeCenter 或具体数值 |
.Width / .Height |
图片尺寸(单位:厘米) | 使用 CentimetersToPoints() 转换 |
🎯 效果展示(可配图)
- 每页中间插入红章
- 页面排版不被干扰
- 批量插入,自动完成
(建议插入前后对比图或操作截图)
📝 常见问题
1. ❗运行时报错:图片路径无效?
请确认你填写的 imgPath
是图片的绝对路径,例如:
imgPath = "D:\图片\电子章.png"
2. ❓如何插入右下角?
你可以改为使用具体坐标控制位置,例如:
.Left = CentimetersToPoints(12)
.Top = CentimetersToPoints(24)
📌 总结
使用 VBA 宏,我们可以轻松完成 Word 文档中的批量图片插入任务,不再手动重复劳动。
欢迎点赞、收藏和评论交流,你还可以尝试扩展功能,如:
- 插入为页眉页脚
- 插入不同图片到不同页
- 设置透明水印效果
作者:Xú Sàijùn
📬 有问题欢迎评论或私信交流!