ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 413191246se

[分享] Word2003 & 2007 VBA 通用模板宏(极速版)2019-8-15 修正

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-9 17:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
附件宏是不能单独使用的,因为,必须是公文(仿宋三号)格式才能应用它;否则,位置就不标准了!

TA的精华主题

TA的得分主题

发表于 2019-10-10 14:58 | 显示全部楼层
真心佩服啊!我也想用C#实现个类似的一键排版功能,能不能请教一下设计思路?楼主是如何判断每段话是标题还是正文的呢?如果是标题又是怎么判断它是几级标题的呢?我不知道该如何下手,希望楼主不吝赐教。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-10 21:57 | 显示全部楼层
楼上朋友,你好!——虽然说 VBA 进行 Word 文档排版处理最为方便,但别的语言也可以进行文档排版。
下面,我把运用 VBA 宏进行公文自动排版的算法思路说一下;由于理解认识水平较低,不一定全面,仅供参考(如果楼主设计写出程序后,我可以做你的测试员):
************************************************
《公文自动排版系统》算法思路设计

* 页面设置:默认A4纸张/页边距2.54cm/3.17cm

* 全文预处理
--删除所有域
--自动编号转文本
--回车符/手动换行符“^13^11”全部替换为段落标记“^p”

*** 判断文档是否有表格:
** 如果没有表格,则——选定全文——执行区域处理宏(此时全文是一个区域)
** 如果有表格,则——将每个表格取消文字环绕并居中;
--首表上方文字区域选定——执行区域处理宏;
--循环选定第1个表格和第2个表格之间的文字区域——执行区域处理宏;
及选定第N-1个表格和第N个表格之间的文字区域——执行区域处理宏;(N为最大数)
--选定最后一个表格后面的文字区域——执行区域处理宏。
(因为循环处理每个段落速度较慢,而大面积处理文字区域则速度飞快!表格不排版,可自行排版或由《表格处理》宏来排版。)
* 区域处理宏(Range Format):
--清除格式:Word只需一句代码 Selection.ClearFormatting 即可将纷繁复杂、各式各样不同的文档格式统一为:宋体(中文)/Times New Roman(英文)/五号(10.5磅)/单倍行距。
--删除段落首尾空格:(包括半角空格/全角空格/不间断空格/制表符这4种空格)
--删除空行(也叫空白段落)
--正文样式(自动设置):三号/仿宋/1.5倍行距(中英文均设置为仿宋)/首行缩进2字符
--标题2/3/4/5自动设置:公文标题(除大标题也叫标题1外)四个层次标准如下:
标题2:形如“一、XXXX”段落,设置为Word内置标题2样式;
标题3:形如“(一)XXXX”段落,设置为Word内置标题3样式;
标题4:形如“1.XXXX”段落,设置为Word内置标题4样式;(还有两个变种:即形如“1.XXXX”段落和形如“1、XXXX”段落,均要转换为前者,即小数点和顿号均要转换为前者标点叫齐线墨点);
标题5:形如“(1)XXXX”段落,设置为Word内置标题5样式。

* 标题2345自动编号:有些朋友写的文章可能经过编辑后,标题编号混乱不堪,用本宏即可统一编号,省时、省力、省心。

* 标题1(标题一,也叫大标题):文章首段文字和二段文字和三段文字,均可能成为标题一,前提是,二段/三段文字末尾均不要有标点,也不在表格内;否则,一般是第一段落为标题一

* 称呼:正文第一段落,如“市财政局:”这样的段落样式为称呼,需要左顶格,不缩进

* 落款:正文最后两个段落,如“某某大学办公室/2019年10月10日”为落款,需缩进

* 附件:公文一般有附件,附件宏负责自动将公文附件名称拷贝到正文落款前面,这是《公文标准》要求的,省时、省力、省心。

* 印发:公文如果有抄送/印发的,此宏负责自动画表格线

* 页码:公文标准要求页码为一字线页码

*** 总结:公文排版具体要求,请详见《党政机关公文格式》(2012年)标准

*** 排版样式基本有两种:
* 公文排版(三号仿宋)热键:F8
* 普通排版(四号宋体)热键:F7,标题设置基本与公文排版类似

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-10 22:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
* 公文效果图:
demo公文排版gif.gif

TA的精华主题

TA的得分主题

发表于 2019-10-11 15:18 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
413191246se 发表于 2019-10-10 22:36
* 公文效果图:

请教下怎么退出热键模式呢?比如说我调整完表格行高,现在需要用F4重复上一步操作,怎么结束热键

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-11 19:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
* 可录制一个临时宏 aaa,然后,指定 F4 为热键,停止;再在宏列表中,找到 aaa 删除它,即可恢复 F4 原始功能。——你平时还用其它功能键吗?

TA的精华主题

TA的得分主题

发表于 2019-10-11 22:38 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
413191246se 发表于 2019-10-11 19:06
* 可录制一个临时宏 aaa,然后,指定 F4 为热键,停止;再在宏列表中,找到 aaa 删除它,即可恢复 F4 原始 ...

热键可以改为F5.F6比较好,F4用来重复上一步操作有时候很快捷,关闭本身有快捷键ctrl+w,另存有快捷键F12,所以快捷热键的前提最好是遵循word自带快捷键功能,适当的修改和利用使用率不高的快捷键,经过使用发现你的表格微调热键也是有问题的,主要是微调把行高设置成了固定值,造成文字显示不全,微调热键建议改成行高最小值

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-11 23:51 | 显示全部楼层
F5:保存/F6:关闭/F7:普通/F8:公文
F3:自动图文集(原始)/F4:重复
F3:减少行高/间距……,F4:增加行高/间距
——表格热键有两套:一个是粗略减少/增加行高(最小值);一个是微调减少/增加行高(最小/固定交替,否则不能进行减少行高)。
——看到你上一个回复,我一度决定恢复 Word 原始功能键;但转念一想,舍弃方便热键损失太大!
(F3:自动图文集,我会用,但觉得没什么可应用的;F4:重复上一步,也觉得没什么好重复的。所以,我就把各种临时热键应用给了 F3/F4。可以在 VBE 中将各个有热键的宏屏蔽或删除即可,在 VBE 中搜索“热键”关键词。)

TA的精华主题

TA的得分主题

发表于 2019-10-12 09:29 来自手机 | 显示全部楼层
413191246se 发表于 2019-10-11 23:51
F5:保存/F6:关闭/F7:普通/F8:公文
F3:自动图文集(原始)/F4:重复
F3:减少行高/间距……,F4:增 ...

其实以你的能力可以两全其美,可以新增退出热键按钮,当退出时恢复默认,比如F3减小,F4增加,ESC退出,公文自动排版建议将标题,正文,段落全部磅值固定为30磅,段前段后全设置为0,因为公文是以3号字的7/8为标准,就是30磅,插入页码一字线不用太复杂的宏,在03下面只需要新建一字线外侧的自动图文集,插入这个图文集就行了,缩减一行这个宏在表格里面无法使用,还有你的模板上新增别的宏,会出现未定义FN的错误,暂时不知道怎么改

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-12 17:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
朋友,说得很好!——由于最初刚接触 Word 时,行距我就使用倍数,所以,习惯了,多年来行距一直使用倍数,从来不用磅值。具体大小我不清楚,我承认我理解水平太低。之所以推出《通用模板宏》或《自动排版宏》,是因为会使用宏多年,但直到 2011年7月我才开窍知道进入 VBE 中编辑代码,不少宏都是在录制宏的基础上发展而来的。水平太低,和本坛各位高人、前辈、老师、朋友们无法比,这点我很有自知之明。
——朋友,你可以在我的代码的基础上修改、升级、更新、优化,推出更加优秀的好用的代码。我的代码不属于我私人,属于大家共有;因为我也借鉴了不少优秀的代码。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-29 10:34 , Processed in 0.049869 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表