公文排版

公文排版 公开

臭冬瓜 更新于 4天19小时前 | 112 | 3988
如何安装动作?

适用于
分类
文本处理 脚本 功能增强
SoVV 用户zsmbMF-NBAA Monster0_0 一叶之秋_ 办之央 112 人赞了这个动作

1 个动作单 收藏了此动作。

更多信息
分享时间 2022-12-06 16:37
最后更新 4天19小时前
修订版本 208
用户许可 只读,不可再分享
Quicker版本 1.42.8
动作大小 1.4 MB
最低Quicker版本 1.38.15

分享到

「根据党政机关公文国标,利用VBA进行公文排版(支持WORD和WPS)」

简介

公文排版(曾用动作名:公文格式化一键排版

  本动作是按照国家标准《党政机关公文格式》(GB/T 9704-2012)要求(并根据工作习惯有所扩展),利用VBA代码对公文进行格式化和排版。

  本动作兼容WORD和WPS(经测试,同样代码在WPS下运行比WORD快多了)


【安装须知】需要安装VBA(注意:WPS个人版不支持VBA,专业版/政府版才支持)。

注意:为了增强对WORD/WPS的兼容性,本动作没有使用Quicker的OFFICE软件辅助模块,而是采用使用快捷键调用VBE、复制代码的方式,涉及ALT+F11CTRL+ACTRL+CCTRL+VCTRL+ENDF5ALT+F4等组合键,因此如已安装VBA但仍无法运行,请查看相关快捷键是否被其他软件占用。(查找和处理方法参阅:【教程】关于运行动作后没有反应的问题


【欢迎点赞支持】如果本动作对您有所帮助,请在右侧,并希望在首次购买专业版时使用我的推荐码3249-9370,双方都可获赠90天专业版时长。谢谢支持!

================================================================================

【功能说明】


一、一键全文排版特色功能

 对全文进行一次性格式化和排版,包括页面格式化、段落格式化、文本格式化、要素格式化、标题格式化、页眉页脚(页码)格式化。

 PS:采用两种方式进行全文排版:

 (1)采用搜索方式的"一键全文排版":速度快,但受到WORD/WPS自带通配符的限制,识别能力不如VBS正则,但是效果也还不错

 (2)采用遍历方式的"一键全文排版":速度慢,但效果好,特别是可自动在主送前和发文机关/发文日期前自动添加空行


二、公文页面格式化

 1.纸张:A4,纵向

 2.上空:3.7cm,下空:3.5cm,左空:2.8cm,右空:2.6cm(可选)

 3.页眉:2cm,页脚:2.48cm(可选)

 4.网格对齐:【默认】无网格(可选)


三、公文段落格式化

 1.首行缩进2个汉字,两端对齐

 2.行距:支持多倍行距、最小值和固定值(可选)

 3.大纲级别:正文文本


四、公文文本格式化

 1.正文中文字体:仿宋(可选)

 2.正文西文字体:新罗马(注:所有西文字体都是新罗马)(可选)

 3.正文字号:三号(可选)

 PS:由于公文中有可能会使用着重号、下划线、删除线、上下标等特殊文字属性,因此未清除相关属性。


五、公文要素格式化

 1.份数:6位数字【例如:000001】;黑体三号,顶格两端对齐(字体可选)

 2.密级:秘密/机密/绝密★2位年限【例如:机密★10年】;黑体三号,顶格两端对齐

 3.紧急程度:特急/加急,黑体三号,顶格两端对齐

 4.附件:附件+3位数字【例如:附件 或 附件19】;黑体三号,顶格两端对齐

 5.文号:支持上下行文文号【例如:办发〔2022〕12号 或 政办〔2022〕12号 签发人:XXX】,以及"第1期""第1号"等形式;仿宋三号,居中对齐

 【注】文号:2个以上汉字,年份:1000-2999;编号:1-9999。(签发人姓名可自动识别并设置成楷体)

 6.文章标题:不能包括表示句子结束的标点符号;方正小标宋简体二号(可选),居中对齐,大纲为正文扩展功能

 PS:虽然能够识别多行的文章标题,但还是建议不要使用换行符,用SHIFT+回车(手动换行符)表示在一个段落内。

 7.各类副标题(只有在讲话稿排版模式下才识别,公文排版模式下不识别),大纲为正文,包括:扩展功能

 7.1 以"——"开头且无表示句子结束的标点符号;楷体小二号(可选),居中对齐,

 7.2 日期+地点:()内的日期和地点【例如:(2022年12月1日,北京);楷体小二号,居中对齐

 7.3 单位+职务+姓名:楷体小二号,居中对齐

 【注】(1)姓名2-4字(空格也算字),同时会造成无法区分4字以内文章标题,例如"个人总结" 或 "统计表",请注意!

    (2)识别副标题只在讲话稿排版模式(介绍看下面右键快捷菜单)下生效。

 8.主送单位:每个文章标题后的第一个以":"结尾且文字数少于50的段落;字体字号同正文,两端对齐

 PS:主送单位或者讲话对象(例如:尊敬的XXX先生,朋友们:)如果是多行,请不要使用换行符,要用SHIFT+回车(手动换行符)表示在一个段落内。

 9.附件说明:

 (1)支持对附件说明进行格式化,并在前后自动增加一个空段落(仅支持前9个说明悬挂对齐)

 (2)可手动插入表格式附件说明,配合自动编号,可设置超大数量的附件扩展功能

 10.公文落款

 10.1 发文日期:单独一个段落的日期【例如:2022年12月1日】;字体字号同正文

 10.2 发文机关:发文日期上一段落默认为是发文机关(所以发文机关必须和发文日期相邻);字体字号同正文

 PS:可根据发文机关和发文日期文字长度自动调节对齐位置

 11.附注:在发文日期后、文章标题前的第一个以"()"作为首尾的段落,当做附注处理(格式同正文);否则,当做图表的说明处理(格式同说明)。

 12.抄送/抄报:"抄送:单位,单位,...,单位。"【例如:抄送:市政府办公室。】;仿宋四号(可选),两端对齐

 13.印发单位和日期:2个以上汉字+空格+日期+印发【例如:市政府办公室 2022年12月1日印发】;仿宋四号(可选),居中对齐(可选)

 PS:可为抄送和印发机关日期添加上下框线。【已知问题】当两者都存在时,只有上下框线,两者之间的横线没有显示)

 14.说明性文字:段落内"()"内至少有1个汉字且3个(含)字符以上;楷体(可选),字号同正文扩展功能


六、公文标题格式化

 1.一级标题:以"一、"开头,编号1-99【例如:二十、】;黑体三号(可选),两端对齐,首行缩进2个汉字,大纲一级

 2.二级标题:以"(一)"开头,编号1-99【例如:(二十一)】,支持全角半角"("")";楷体三号加粗(可选),两端对齐,首行缩进2个汉字,大纲二级

 3.三级标题:以"1."或"1、"开头,编号1-99【例如:12.】,支持"、"和全角半角".";仿宋三号加粗(可选),两端对齐,首行缩进2个汉字,大纲三级

 4.四级标题:以"(1)"开头,编号1-99【例如:(10)】,支持全角半角"("")";仿宋三号(可选),两端对齐,首行缩进2个汉字,大纲四级

 5.五级标题:以"——"开头的句子;楷体三号(可选),两端对齐,首行缩进2个汉字,大纲五级扩展功能

 6.条款标题扩展功能

 6.1 法律法规文书的"章":以"第一章"开头,编号1-999【例如:第一百十二章】;黑体三号(可选),居中,大纲一级

 6.2 法律法规文书的"节":以"第一节"开头,编号1-999【例如:第十五节】;宋体三号加粗(可选),居中,大纲二级

 6.3 法律法规文书的"条":以"第一条"开头,编号1-999【例如:第十条】;黑体(可选),其他格式同正文文

 7."第"标题:以"第X,"开头句子,编号1-99【例如:第十二,】;楷体三号加粗(可选),大纲级别正文文本扩展功能

 8.图表标题:以"图""表""图表"+数字开头的非句子段落,编号1-999【例如:表1 图1-2 图表:...】;黑体四号(可选),大纲级别正文文本扩展功能

 9.段内子标题:"一是"或"一要",编号1-10【例如:十是/十要】;仿宋加粗(可选),字号无变化扩展功能

 PS:

 (1)可自动识别自动编号对应的一到四级标题,可使用"创建自动编号"和"应用自动编号"设置编号格式。扩展功能

 (2)所有段落和正文都设置了大纲级别,使用大纲视图起草公文时会非常直观,思路清晰。

 (3)对于一级大纲且两行以内,段落设置使用了孤行控制与下段同页,使得公文排版更加美观。扩展功能


七、页眉页脚扩展功能

 1.添加公文页码

 (1)页码有两种样式:一是图文框页码(便于进行特殊排版);二是非图文框页码。(可选)

 (2)页码摆放有两个位置:一是居中;二是设置奇偶页并居外侧(用于双面打印)(可选)

 2.设置单节页码:可以设置本节不加页码,首页无页码,其他样式页码等操作

 3.所有横向页面页码转左侧特色功能

 4.当前节页码转左侧(将当前节的页码转为左侧,不受横向或纵向页面限制)特色功能

 5.清除所有左侧页码(清除使用2和3生成的页眉页脚)

 6.去除所有页眉(包括烦人的页眉下框线,图片和形状)

 7.去除所有页脚(包括页脚上框线,图片和形状)

 8.去除所有页眉和页脚(相当于5+6)


八、表格格式化扩展功能

 1.表格内文字字体:仿宋四号(可选)

 2.表格内文字对齐:水平居中,垂直居中

 3.表格内段落:单倍行距,段落前后0.2行行距(可选)

 4.首行作为标题行自动重复:黑体四号(可选),居中对齐

 5.表格单元格内容是句子时,对齐方式同正文:首行缩进2个汉字,两端对齐

 6.四种表格线样式:细外框,粗外框,上下文武线,三线表

删除表格功能(支持嵌套表格和有合并单元格的表格) 特色功能 

 1.从光标所在行开始向上或向下删除连续行

 2.删除整个文档或选中区域的所有表格

 3.删除整个文档或选中区域的所有空表

 4.删除整个文档或选中区域表格中的空行

 5.删除整个文档或选中区域表格单元格中的空段落


九、图片格式化扩展功能

注意:只对图片进行处理,不包括形状、文本框等。

 1.所有图片转为嵌入式图片(可选)

 2.所有图片单独一行,居中对齐(可选)

 3.所有图片锁定纵横比缩放(默认缩放至页面宽度)(可选)

 PS:控制缩放有两种方式:

 (1)控制缩放比例(优先级低)

 (2)设置图片宽度(优先级高)

 ==== 处理所有图片 ====

 4.嵌入图片转非嵌入图片

 5.嵌入图片单独一行并居中

 6.非嵌入图片转嵌入图片

 7.非嵌入图片浮于文字上方

 8.非嵌入图片文字上下环绕

 9.非嵌入图片沉于文字下方

 10.删除所有图片(含嵌入和非嵌入)


十、替换标准字体扩展功能

 (1)支持替换文章标题和副标题的字体

 (2)支持替换一级到五级标题的字体

 (3)支持将英文字体直接替换成对应的中文字体

 (4)可同时查找替换3种字体

 PS:可快速互换,即查找字体转替换字体,替换字体转查找字体


十一、去除空白扩展功能

 1.去除首尾空白字符(包括行/段/页/栏的首尾空白字符)

 2.去除空行(手动换行符^l,不是将 ^l 替换成 ^p特色功能

 3.去除空段(换行符^p)

 4.去除空页(分页符^m)

 5.去除空节

 PS:为避免删除非嵌入式形状,遍历式"去处空白"不会执行去除非嵌入式形状所在的空段/空页/空节。


十二、创建公文样式扩展功能

 1.公文标题:方正小标宋简体二号,居中,大纲级别:正文文本

 2.公文副标题:楷体小二号,居中,大纲级别:正文文本

 3.公文标题1:黑体三号,首行缩进2个汉字,大纲级别:一级

 4.公文标题2:楷体三号加粗,首行缩进2个汉字,大纲级别:二级

 5.公文标题3:仿宋三号加粗,首行缩进2个汉字,大纲级别:三级

 6.公文标题4:仿宋三号,首行缩进2个汉字,大纲级别:四级

 7.公文正文:仿宋三号,首行缩进2个汉字,大纲级别:正文文本


十三、初始化格式扩展功能

 1.段落字体恢复成默认格式

 2.去除超链

 3.域代码转成值


十四、套用红头特色功能

 1.上行公文红头(发文机关名称)

 2.下行公文红头(发文机关名称+"文件")

 3.公函红头

 4.清除所有红头

 5.添加文号

 6.可设置套红方案(包括调用、添加、编辑、改名、删除)
 PS:

 (1)套红和添加文号都应在公文排版(特别是页面设置)后执行

 (2)上下行文都分别支持行政机关/党的机关(党的机关版头分隔线中间有五角星
 (3)注意:一是固定在文档开头位置开始套红和添加文号;二是纵向页面无法套红
 (4)"设置套红方案"在动作右键菜单;方案编辑、改名、删除在方案名右键菜单


 十五、填写各类记录特色功能

 将需要记录的内容填写到专门格式的WORD表格中。

 1. 可导入记录文档或将表格指定位置的文本填写到表格中

 2. 可以设置记录字体字号和表格行高

 3. 可设置四种填写方式:

 (1)插入方式:在指定位置之前插入所需记录行数,填写记录。

 (2)覆盖方式:

  • 覆盖方式:在指定位置开始填写记录,只覆盖填写记录的内容,不会删除填写记录之后的内容。
  • 覆盖方式1:在指定位置开始填写记录,并会删除从填写记录之后到表格结尾的多余行。
  • 覆盖方式2:在指定位置开始填写记录,并会删除从填写记录之后到表格结尾所在列的原有记录,但保留相应的行。


十六、自动编号扩展功能

 1.创建自动编号:根据公文排版参数设置,创建自动编号

 (1)含一级到四级编号、章/节/条编号和一个多级自动编号

 (2)受WORD/WPS局限,创建的自动编号仅在当前文档有效,即每个文档可能都需创建自动编号

 2.应用自动编号:将现有自动编号全部自动修改成新创建的自动编号

 3.恢复自动编号(恢复成WORD/WPS内置编号格式)

 4.文本编号转自动编号,两种类型:(1)标题(一级到四级);(2)条款(章/节/条)特色功能

 5.自动编号转文本编号(转成文本编号后将无法自动编号

 6.取消自动编号

 7.设置编号,包括:一级到四级标题;【章】【节】【条】

自动编号使用简要说明

 第一步:创建自己的自动编号(会从"公文排版参数选项"中取得相关参数),原则上只需要一次,除非更换自动编号相关参数,例如更改字体、字号,需要重新创建一次

 PS:对应WORD/WPS的自动编号列表("无"之后的顺序):

  第一个位置:一级编号"一、"

  第二个位置:二级编号"(一)"

  第三个位置:三级编号"1."

  第四个位置:四级编号"(1)"

  第五个位置:【章】编号"第n章 "

  第六个位置:【节】编号"第n节 "

  第七个位置:【条】编号"第n条 "

 第二步:根据需求,点击功能菜单对应设置


十七、节能纸张

 1.压缩全文段末文字:若段落末行3字以内,将通过压缩字间距的方式,将末行文字整合到上一行(节约用纸,从我做起)

 2.压缩选中段落末行:不同于"压缩全文段落末行文字",压缩全文段落末行文字有末行3个字以内的限制,此操作只要符合5:1压缩率(5个字压缩1个字)的段落字符数量的要求,对末行字数没有其他限制。

 PS:(1)上述功能建议在文稿确定后再使用;(2)未对表格内文字做过完整测试。

 2.恢复字间距:恢复字距为标准字间距


十八、一键分页空行特色功能

 1.在关键词"附件"前添加分页符

 2.在文章标题之前添加分页符

 3.在文章标题后添加空行

 4.自动删除所添加分页符前的空段落

 PS:文章标题的字体和字号可以自行设置(默认使用公文排版中的文章标题参数),并可设定根据字体、字号或者字体+字号来识别标题


十九、公文排版方案管理特色功能

 1.创建多个公文排版方案

 2.对排版方案进行载入、改名、删除(批量删除)、生成、合并、排序等操作

 3.本地备份与恢复

 4.云端备份与恢复

 5.设置备份计划(定时备份需运行动作才能执行,因此建议将动作放在Quicker设置的"自动运行动作")

 PS:本动作目前有198个状态变量需要备份恢复,因此实现这个功能需要感谢:

 1.Cea 编写的 词典_批量取值赋值pro(带key映射) 子程序,使得编写备份和恢复操作非常简单;

 2.CL 开放生成 动作定义qka文件,使得提取变量名称非常便捷。


二十、"单元格添加编号"(支持识别合并单元格,只对一致的单元格添加编号)特色功能

 1.支持行/列编号

 2.支持定义起始编号和结束编号

 3.支持定义编号间隔(可正序/倒序)

 4.支持自定义编号补位位数和符号

 5.支持循环编号和循环次数

 6.支持清除编号后的单元格内容

 7.支持自定义编号序列(如:星期,部门,人员...)

 8.支持自定义编号前缀和后缀

 以上功能结合起来,可以变化成更多的添加编号方式,欢迎大家创新^_^


二十一、插入转换复杂域代码扩展功能

 1.将域代码转成用 {} 括起来的文本型域代码

 2.插入或者将选区中的文本型的域代码转换成WORD域代码(CTRL+F9生成的域代码)

 (1)支持同时转换多个域代码

 (2)域代码支持多层嵌套

 (3)可保存输入历史(重复使用)

 详细介绍可参见:关于自动转换复杂的多层嵌套的域代码


【特色功能】

支持用户在一定条件下自定义公文排版规则

 1.所有规则都整合在一个文件中(文件名:d:\公文排版自定义规则.rule;文件大小:20KB以内

 2.采用类似INI文件分段描述自定义规则:

 【子段名1】
 查找规则1|||替换规则1
 查找规则2|||替换规则2
 【子段名2】
 查找规则1|||替换规则1
 查找规则2|||替换规则2
 ...

 3.每行一个自定义规则:规则中包含"|||"才是有效规则;否则都认为是注释,不会执行

 PS:

 (1)子段名称为"公文排版"菜单选项中【】内的文字,包括:

全文|页面|段落|文本|要素|标题|表格|图片|全文页码|样式|红头|文号|编号|压缩|记录|单节页码|全文1|要素1|标题1

 【说明】全文|要素|标题:指的是遍历方式的"一键全文排版";全文1|要素1|标题1:指的是搜索方式的"一键全文排版"

 (2)子段不分先后顺序

 (3)子段同名时,仅第一个有效,其后同名子段都会被忽略

 (4)替换规则可参考:https://getquicker.net/KC/Help/Doc/strReplace 关于【查找和替换内容】部分

 (5)公文排版和套红的大多数参数都可以通过"公文排版选项"和"设置套红方案"进行设置,自定义规则已属进阶用法,用于选项中没有的设置。

示例1:
【全文】
忽略识别公文三级和四级标题规则
^(\s*sTitle3Reg\s*=).*$|||$1 ""
^(\s*sTitle4Reg\s*=).*$|||$1 ""
【标题】
忽略识别公文三级和四级标题规则
^(\s*sTitle3Reg\s*=).*$|||$1 ""
^(\s*sTitle4Reg\s*=).*$|||$1 ""
示例2:
【编号】
自定义论文多级编号规则:1. /1.1. /1.1.1. /1.1.1.1.
^(\s*sTitle1OLNumberFormat\s*=).*$|||$1 "%1. "
^(\s*sTitle2OLNumberFormat\s*=).*$|||$1 "%1.%2. "
^(\s*sTitle3OLNumberFormat\s*=).*$|||$1 "%1.%2.%3. "
^(\s*sTitle4OLNumberFormat\s*=).*$|||$1 "%1.%2.%3.%4. "
^(\s*sTitle1OLNumberStyle\s*=).*$|||$1 wdListNumberStyleArabic
^(\s*sTitle2OLNumberStyle\s*=).*$|||$1 wdListNumberStyleArabic
^(\s*sTitle3OLNumberStyle\s*=).*$|||$1 wdListNumberStyleArabic
^(\s*sTitle4OLNumberStyle\s*=).*$|||$1 wdListNumberStyleArabic


【注意】别忘了在动作右键菜单中"启用替换规则文件"。自定义规则支持正则表达式和转义符(有点小门槛)。如果不使用正则表达式,查找内容必须与原代码保持完全一致(特别要注意空格和转义符"\")。另,建议Quicker"文本替换"功能增加忽略空格和大小写的参数。


【功能菜单】(如有更新不再换图)



【动作鼠标右键快捷菜单】


管理公文排版方案(用户可自行设定多套公文排版方案,每个方案的排版参数和识别开关可以不同)
设置公文排版选项(用户可自行设定公文排版参数和识别开关)
设置套红方案与参数(用户可自行调用、添加、编辑、改名、删除套红方案) 编辑自定义规则文件(自动打开自定义规则文件,方便用户进行修改) 备份动作数据(手动备份本动作数据文件到指定位置,防止重装系统时删除动作数据文件)
显示【VBA】窗口(能够自己修改代码的朋友,如果遇到执行本动作后无法显示VBA窗口时,可选此项;退出重启WORD/WPS,也可恢复窗口) ----
使用GBK(默认)/GB2312字体(动态菜单,第一次运行后出现) 使用公文(默认)/讲话稿排版模式(动态菜单,第一次运行后出现;公文正文字号:三号,讲话稿正文字号:小二号) 识别标题(默认)/条款样式(动态菜单,第一次运行后出现) 启用/禁用(默认)替换规则文件(动态菜单,第一次运行后出现)
注意事项

 (1)恢复动作数据文件需要关闭Quicker,所以自己动手恢复吧。恢复前,请将备份文件名中"_<日期>"部分删除,然后覆盖%USERPROFILE%\AppData\Local\Quicker\States文件夹中的同名文件。(如需网络备份,还是推荐使用各种网盘,直接备份Quicker的数据目录,可以备份Quicker的所有设置)

 PS:Quicker 从 1.38.28 已经支持 VIP用户 自动备份数据文件

 (2)使用讲话稿排版模式:不会识别版头版记和条款标题

 (3)使用公文排版模式:不会识别文章副标题

 (4)识别条款样式:识别章/节/条等条款标题,但不会识别除文章标题之外的各类标题


【公文排版选项】(如有更新不再换图)


【设置套红方案(如有更新不再换图)




【写在最后】

  本人不会 VB 也不会 C,更不会 JAVA 和 Python,纯属心血来潮,现学现卖。因此,程序代码 BUG 在所难免,如果遇到问题可及时加入QQ群(884774600)反馈。本人会尽快修正,谢谢!

最近更新

修订版本 更新时间 更新说明
208 4天19小时前 1."实验室"增加"刷新自动编号字体字号"
2."实验室"增加"清除各类底纹"(包括段落、文字、表格或单元格)
3."一键全文排版"增加对列表编号的支持
207 12天18小时前 1.调整菜单图标颜色
2.更新"运行VBA代码"子程序
206 21天18小时前 1.调整标题级别(文章标题设为大纲一级,其他级别标题的大纲级别顺延)
2.调整替换字体方法,增加检测结束条件,防止死循环
3.修正在WPS下涉及页面设置的一处不兼容问题
4.改进表格处理的相关代码
 (1)修正"删除表格空段落"有嵌套表格会遗留一个空段落的问题,并改进提高速度
 (2)改进"填写表格记录"清除同列多余单元格内容的算法,提高速度
 (3)优化"删除表格空行"代码

最近讨论