WPS文档排版救星
WPS文档排版救星:6个VBA模块,一键搞定标题、正文、表格、图片、页码、眉线
还在为WPS文档排版反复调格式?标题字号、正文行距、表格对齐、图片环绕、页码眉线……这套VBA工具包让你一键完工。
一、痛点
做工程方案、写项目报告、出投标书,最耗时的往往不是内容,而是格式统一——
-
一级标题用几号字?黑体还是宋体? -
正文行距是1.25倍还是1.5倍? -
表格里的字总是对不齐 -
图片一拖就满屏乱跑 -
每页都要手动加页码和眉线 -
不同人交上来的文档花花绿绿各不一样
手工调一遍至少半小时,改一版再调半小时。
与其每次都重复劳动,不如写一套代码,一劳永逸。
二、工具包总览
本工具包共6个VBA模块,覆盖文档排版的全部环节,在WPS Office和Microsoft Office中均可运行。
三、各模块详解
① 文档格式 —— 标题正文一键到位
直接修改 WPS 内置样式(Heading 1/2/3 + Normal),文档中凡应用了这些样式的段落自动更新。
┌─────────────────────────────────────┐│ 一级标题:三号黑体,居中 ││ 字间距加宽1.5磅 │├─────────────────────────────────────┤│ 二级标题:小三号宋体加粗,居中 ││ 字间距加宽1.5磅 │├─────────────────────────────────────┤│ 三级标题:四号宋体加粗,居中 ││ 字间距加宽1.5磅 │├─────────────────────────────────────┤│ 正文:小四号宋体,1.5倍字高行距 ││ (固定值18pt),首行缩进2字符 │└─────────────────────────────────────┘
适合场景:已有标题样式应用的新文档,一键刷新。
② 文字段落 —— 智能跳过表格和图片
逐段遍历整个文档,自动识别并跳过表格内的段落和纯图片段落,只处理文字段落。
' 跳过表格内段落If para.Range.Information(wdWithInTable) Then GoTo NextPara' 跳过纯图片段落cleanText = Replace(para.Range.Text, Chr(7), ””)If Len(Trim(cleanText)) = 0 Then GoTo NextPara' 设置格式para.Range.Font.Size = 12 ' 小四号para.Range.Font.NameFarEast = ”宋体”para.Range.ParagraphFormat.LineSpacingRule = wdLineSpaceExactlypara.Range.ParagraphFormat.LineSpacing = 18
执行完毕后弹出统计:
文档总段落数:156 段已设置格式 :132 段跳过表格内 :20 段跳过图片段 :4 段
适合场景:从别处粘贴来的文档、多人协作合并后的混乱文档。
③ 表格格式 —— 强迫症福音
智能匹配字号逻辑:
④ 图片格式 —— 告别图片乱跑
处理文档中所有图片(无论是嵌入式还是浮动式):
处理前:图片嵌入文字中,拖拽就乱处理后:┌─────────────────────────┐│ ││ [图片] ← 上下型环绕 ││ 居中显示 ││ ││ 插图1 ← 自动题注 │└─────────────────────────┘
题注格式为”插图1″、”插图2″……五号宋体居中,段前段后自动留间距。
⑤ 页面格式 —— 工程文档的标准配置
专门为工程技术类文档设计:
┌─────────────────────────────────┐│ 项目名称 工程编号 │ ← 眉线(五号宋体,距顶边22mm)│─────────────────────────────────│ ← 横线│ ││ (正文区域) ││ 每行38字,小四号宋体 ││ 1.5倍字高行距 ││ ││ ││─────────────────────────────────││ 1 │ ← 页码(五号宋体居中,距底边18mm)└─────────────────────────────────┘
页边距统一设为 A4 纸四边 2.5cm。
⑥ 格式工具栏 —— 点按钮就能用
运行 ShowFormatToolbar 后,弹出浮动工具栏:
┌─────────────────────────────────────┐│ 📄标题正文 📝文字段落 📊表格格式 ││ 📐页面格式 🖼️图片格式 ││ ─────────────────────────────────── ││ ▶ 一键全执行 ✕ 关闭 │└─────────────────────────────────────┘
每个按钮对应一个模块。点击“一键全执行”以最优顺序完成全部排版:
① 页面格式(设好眉线页码网格)② 标题正文样式③ 文字段落格式④ 表格格式⑤ 图片格式
四、使用方法
第一步:导入模块
1. 打开 WPS → 按 Alt+F11 进入 VBA 编辑器2. 菜单 → 文件 → 导入文件3. 依次选中 6 个 .bas 文件导入4. 关闭编辑器
第二步:执行
推荐方式:调出工具栏
按 Alt+F8 → 选择 ShowFormatToolbar → 运行 → 点击按钮
也可直接执行单个模块
按 Alt+F8 → 选择对应宏名 → 运行
五、核心代码赏析
5.1 正文样式设置
Private Sub SetNormalStyle()With ActiveDocument.Styles(wdStyleNormal).Font.NameFarEast = ”宋体”.NameAscii = ”Times New Roman”.Size = 12 ' 小四号 = 12pt.Spacing = 0End WithWith ActiveDocument.Styles(wdStyleNormal).ParagraphFormat.LineSpacingRule = wdLineSpaceExactly.LineSpacing = 18 ' 12pt × 1.5 = 18pt.FirstLineIndent = CentimetersToPoints(0.74).Alignment = wdAlignParagraphLeftEnd WithEnd Sub
5.2 表格字号自适应
' 读取正文样式字号,自动降1级Select Case bodySizeCase 14: tableSize = 12 ' 四号→小四Case 12: tableSize = 10.5 ' 小四→五号Case 10.5: tableSize = 9 ' 五号→小五Case Else: tableSize = bodySize - 2End Select
5.3 图片遍历与转换
' 倒序遍历InlineShapes,转换后自动从集合移除For i = ActiveDocument.InlineShapes.Count To 1 Step -1Set ils = ActiveDocument.InlineShapes(i)If ils.Type = wdInlineShapePicture ThenSet shp = ils.ConvertToShapeshp.WrapFormat.Type = wdWrapTopBottomshp.RelativeHorizontalPosition = wdRelativeHorizontalPositionMarginshp.Left = wdShapeCenterAddCaptionBelow shp, imgCountEnd IfNext i
5.4 眉线实现
' 页眉插入”项目名称”(左)和”工程编号”(右)headerRange.Text = ”项目名称” & vbTab & ”工程编号”' 右侧制表位rightPos = PageWidth - RightMargin - 0.5cmheaderRange.Paragraphs(1).TabStops.Add _Position:=rightPos, Alignment:=wdAlignTabRight' 下边框作为眉线headerRange.Paragraphs(1).Borders(wdBorderBottom).LineStyle = wdLineStyleSingle
六、下载
回复关键词
关注本公众号,后台回复 “VBA工具” 即可获取下载链接。
文件清单
📦 WPS排版工具包 v1.0(6个模块,约28KB)┣ 📜 设置文档格式.bas — 标题+正文样式┣ 📜 设置正文格式.bas — 遍历文字段落┣ 📜 设置表格格式.bas — 表格格式调整┣ 📜 设置图片格式.bas — 图片+题注┣ 📜 设置页面格式.bas — 眉线+页码+网格┗ 📜 格式工具栏.bas — 可视化工具栏
七、适用场景
-
如需自定义字号/字体/颜色,直接用记事本打开 .bas 文件修改数值即可 -
建议导入后将6个 .bas 文件保存在本地,换电脑时重新导入
如果觉得有用,欢迎点赞、在看、转发,让更多被排版折磨的工程师看到!
你在排版中遇到最头疼的问题是什么?欢迎评论区留言。
—— 一份帮你省下排版时间的工具箱,用代码对抗重复劳动
夜雨聆风