Word VBA 教程|一键将 PNG/JPG 图片插入每一页(浮于文字上方,固定大小)

发布于:2025-05-28 ⋅ 阅读:(13) ⋅ 点赞:(0)

Word VBA 教程|一键将 PNG/JPG 图片插入每一页(浮于文字上方,固定大小)

本文适合需要在 Word 文档的每一页自动插入图片(如公章、水印、标志等)的用户,使用 VBA 代码实现自动批量插入,省时省力!


🧠 应用场景

日常办公中,我们常需要在 Word 的每一页插入同一张图片,例如:

  • 插入电子章或公司印章
  • 添加审核签字图标
  • 插入公司 Logo 或图片作为签发标记

如果你逐页手动插入,不仅耗时,还容易漏页。而使用 VBA 宏代码,仅需一次点击,即可完成批量操作!


🛠️ 功能说明

  • ✅ 支持插入 PNG 或 JPG 图片
  • ✅ 自动插入至每一页
  • ✅ 图片设置为“浮于文字上方”,不遮挡内容排版
  • ✅ 可设置图片尺寸(如 6.5cm × 6.5cm)
  • ✅ 可自定义位置(如页面居中、右下角等)

📋 操作步骤

第一步:打开 Word 的 VBA 编辑器

  1. 打开你的 Word 文档
  2. 按下快捷键 Alt + F11,进入 VBA 编辑器
  3. 在左侧找到 “ThisDocument”,双击打开
  4. 将以下代码粘贴进去

第二步:复制粘贴 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

第三步:运行宏

  1. 按下 F5,或点击工具栏上的 “运行”
  2. 稍等几秒,图片即会自动插入每一页!

🧩 参数说明与可扩展

参数 含义 示例值
imgPath 图片路径(必须是绝对路径) "C:\图片\logo.jpg"
.Top 与页面顶部距离(单位:磅) 50200 可调位置
.Left 水平位置 wdShapeCenter 或具体数值
.Width / .Height 图片尺寸(单位:厘米) 使用 CentimetersToPoints() 转换

🎯 效果展示(可配图)

  • 每页中间插入红章
  • 页面排版不被干扰
  • 批量插入,自动完成

(建议插入前后对比图或操作截图)


📝 常见问题

1. ❗运行时报错:图片路径无效?

请确认你填写的 imgPath 是图片的绝对路径,例如:

imgPath = "D:\图片\电子章.png"

2. ❓如何插入右下角?

你可以改为使用具体坐标控制位置,例如:

.Left = CentimetersToPoints(12)
.Top = CentimetersToPoints(24)

📌 总结

使用 VBA 宏,我们可以轻松完成 Word 文档中的批量图片插入任务,不再手动重复劳动。

欢迎点赞、收藏和评论交流,你还可以尝试扩展功能,如:

  • 插入为页眉页脚
  • 插入不同图片到不同页
  • 设置透明水印效果

作者:Xú Sàijùn
📬 有问题欢迎评论或私信交流!


网站公告

今日签到

点亮在社区的每一天
去签到