Word文档中如何批量插入带文件名的图片_编写宏代码自动读取文件夹并插入图片
发布时间 - 2026-01-28 00:00:00 点击率:次可通过VBA宏在Word中批量插入指定文件夹图片并自动添加加粗绿色文件名题注;需启用开发工具、粘贴代码、支持多格式扩展、调整宏安全设置后运行,再手动优化图片布局与题注对齐。
如果您需要在Word文档中批量插入来自指定文件夹的图片,并为每张图片自动添加对应文件名作为题注,则可以通过编写VBA宏实现自动化处理。以下是完成该任务的具体步骤:
一、启用开发工具并创建新宏
Word默认不显示“开发工具”选项卡,需先启用该功能以便编辑和运行宏代码。启用后,可新建一个标准模块用于编写插入图片的VBA逻辑。
1、点击“文件”→“选项”→“自定义功能区”→勾选“开发工具”→点击“确定”。
2、切换到“开发工具”选项卡,点击“Visual Basic”打开VBA编辑器。
3、在VBA编辑器中,右键“Normal”或当前模板→选择“插入”→“模块”,新建一个空白模块。
二、粘贴并修改图片插入宏代码
该宏将遍历指定路径下的所有支持格式图片(如.jpg、.png、.bmp),逐个插入文档,并在每张图片下方插入加粗的绿色文件名作为题注。
1、在新建模块中粘贴以下完整VBA代码:
Sub InsertImagesWithFilename()
Dim fd As FileDialog
Dim folderPath As String
Dim fileName As String
Dim doc As Document
Dim ilsh As InlineShape
Dim para As Paragraph
Set doc = ActiveDocument
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
If fd.Show -1 Then Exit Sub
folderPath = fd.SelectedItems(1) & "\"
fileName = Dir(folderPath & "*.jpg")
Do While fileName ""
Set ilsh = doc.InlineShapes.AddPicture(FileName:=folderPath & fileName, LinkToFile:=False, SaveWithDocument:=True, Range:=Selection.Range)
Set para = doc.Paragraphs.Add(Range:=Selection.Range)
para.Range.Text = "" & fileName & ""
para.Range.Font.Bold = True
para.Range.Collapse Direction:=wdCollapseEnd
Selection.EndKey Unit:=wdStory
Selection.TypeParagraph
fileName = Dir
Loop
fileName = Dir(folderPath & "*.png")
Do While fileName ""
Set ilsh = doc.InlineShapes.AddPicture(FileName:=folderPath & fileName, LinkToFile:=False, SaveWithDocument:=True, Range:=Selection.Range)
Set para = doc.Paragraphs.Add(Range:=Selection.Range)
para.Range.Text = "" & fileName & ""
para.Range.Font.Bold = True
para.Range.Collapse Direction:=wdCollapseEnd
Selection.EndKey Unit:=wdStory
Selection.TypeParagraph
fileName = Dir
Loop
fileName = Dir(folderPath & "*.bmp")
Do Whi

Set ilsh = doc.InlineShapes.AddPicture(FileName:=folderPath & fileName, LinkToFile:=False, SaveWithDocument:=True, Range:=Selection.Range)
Set para = doc.Paragraphs.Add(Range:=Selection.Range)
para.Range.Text = "" & fileName & ""
para.Range.Font.Bold = True
para.Range.Collapse Direction:=wdCollapseEnd
Selection.EndKey Unit:=wdStory
Selection.TypeParagraph
fileName = Dir
Loop
MsgBox "图片插入完成!共插入带文件名标注的图片若干张。"
End Sub
三、调整宏以支持更多图片格式
原始代码仅覆盖.jpg、.png、.bmp三种格式;若需兼容.gif、.tiff等,可在同一模块中追加对应扩展名的Dir循环段落,每次循环前重置fileName变量并指定新通配符。
1、在上述代码末尾“MsgBox”之前插入新循环段落:
fileName = Dir(folderPath & "*.gif")
Do While fileName ""
Set ilsh = doc.InlineShapes.AddPicture(FileName:=folderPath & fileName, LinkToFile:=False, SaveWithDocument:=True, Range:=Selection.Range)
Set para = doc.Paragraphs.Add(Range:=Selection.Range)
para.Range.Text = "" & fileName & ""
para.Range.Font.Bold = True
para.Range.Collapse Direction:=wdCollapseEnd
Selection.EndKey Unit:=wdStory
Selection.TypeParagraph
fileName = Dir
Loop
四、设置宏安全性并运行
Word默认禁用宏以防止恶意代码执行,需临时将宏安全级别设为“启用所有宏”或“通知我”才能运行自定义脚本。操作后务必恢复至推荐级别。
1、点击“文件”→“选项”→“信任中心”→“信任中心设置”→“宏设置”。
2、选择“启用所有宏(不推荐;可能会运行有潜在危险的代码)”或“通知我有关宏的启用。”
3、返回Word主界面,在“开发工具”选项卡中点击“宏”,选择“InsertImagesWithFilename”,点击“运行”。
4、在弹出的文件夹选择窗口中,定位到存放图片的目标文件夹,点击“确定”。
五、手动修正图片排列与题注格式
宏插入的图片为InlineShape类型,会随文字流换行;若需统一居中、固定尺寸或改为浮动式布局,需在插入后单独选中图片进行样式调整。
1、按住Ctrl键依次单击各张图片,批量选中所有已插入的InlineShape对象。
2、右键任意一张图片→“设置图片格式”→“大小”选项卡→取消勾选“锁定纵横比”,输入统一高度(如8厘米)。
3、再次右键→“环绕文字”→选择“上下型”或“四周型”,使图片脱离内联限制。
4、选中全部题注文本(即文件名部分),点击“开始”选项卡→“居中”按钮,使其与上方图片对齐。
# word
# app
# 工具
# word文档
# 排列
# asic
# if
# while
# 循环
# 对象
# 自动化
# 开发工具
# 选项卡
# 题注
# 右键
# 自定义
# 勾选
# 新建一个
# 加粗
# 若需
# 文档
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
高防服务器:AI智能防御DDoS攻击与数据安全保障
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
Laravel怎么为数据库表字段添加索引以优化查询
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
简单实现jsp分页
Android滚轮选择时间控件使用详解
Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程
制作旅游网站html,怎样注册旅游网站?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
大型企业网站制作流程,做网站需要注册公司吗?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
详解jQuery停止动画——stop()方法的使用
iOS正则表达式验证手机号、邮箱、身份证号等
网站制作软件免费下载安装,有哪些免费下载的软件网站?
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
nginx修改上传文件大小限制的方法
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
电商网站制作价格怎么算,网上拍卖流程以及规则?
如何在阿里云完成域名注册与建站?
Laravel如何自定义分页视图?(Pagination示例)
JavaScript实现Fly Bird小游戏
如何获取免费开源的自助建站系统源码?
如何快速搭建个人网站并优化SEO?
Python图片处理进阶教程_Pillow滤镜与图像增强
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
如何确认建站备案号应放置的具体位置?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
JavaScript如何操作视频_媒体API怎么控制播放
Android中AutoCompleteTextView自动提示
桂林网站制作公司有哪些,桂林马拉松怎么报名?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
浅谈Javascript中的Label语句
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
Android 常见的图片加载框架详细介绍
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
如何在腾讯云服务器上快速搭建个人网站?
如何在阿里云部署织梦网站?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
如何快速使用云服务器搭建个人网站?
如何续费美橙建站之星域名及服务?
如何快速查询网址的建站时间与历史轨迹?
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
如何在Windows 2008云服务器安全搭建网站?

