如何为整篇word文档加拼音标注
4月9日,打印一篇童话,突然想到如果为童话加上标音会更适合小孩阅读,就试图为整篇文档加拼音标注,但结果令我失望,微软的word加拼音有字数限制,每次只能为几十个字加拼音标注,如果以这种方式为一篇几千字的童话加拼音,工作量将会令人无法忍受。为此,我决定为word加一个简单的宏命令,令这个工作简单化。
由于对word宏命令不太熟悉,我将个任务分解为三部分,第一,了解光标的移动指令;第二,了解加拼音的命令;第三,对排版进行一些美化调整。
第一点并不复杂,简单录制一个宏,移动一下光标,就很清楚地看到移动的指令了。
Selection.MoveRight unit:=wdCharacter, Count:=1, Extend:=wdExtend
接下来,我在msdn简单浏览了一下selection对象以及一些move前缀的方法,初步了解了一些移动的指令。
第二点,我右键点了下菜单,在自定义菜单中找了“拼音标准”对应的命令FormatPhoneticGuide,以此为关键字进行搜索,很快就得到了在宏中使用的简单调用方法,但这个方法我觉得不科学,如果有软件处理响应时间跟不上,很容易就会崩溃,但没找到更好的方法:
SendKeys "{enter}", 2 ‘模拟键盘输入,2是等待时间,因为加拼音标注的对话框调用在后面,为了正确向它发出回车键信息,要等几秒,事实上这个值越大越安全,但等待时间太长会影响程序的运行效率,这个方法我认为不太好,但没有找到FormatPhoneticGuide的其它信息,也就将就使用这个笨方法了! Application.Run MacroName:="FormatPhoneticGuide"
第三点,为了让加了拼音后的文字容易阅读,我决定每个字之间都加上一个空格,否则的话,拼音全挤在一起,会令小孩在拼读时迷惑,这相当简单,录制一个宏,就按一下键盘箭头右移动,然后打个空格就好了,在程序中可以将这个动作循环一下。
Addpinyin的宏很快就写好,我一句句单步了一下,没有什么意外,效果还不错,直接上结果图。喜欢的朋友可以也可以看看完整的宏代码。
Sub AddPinYin() 'Author:MissileCat Date:20140410 version:1.0.0 ' Addpinyin 宏 '为一篇完整的word文字加上标音标注 Dim tintTreatingCount As IntegerDim tstrCharA As StringDim tlngCurPos As LongDim tintA As IntegerSelection.WholeStorytstrText = Selection.TexttintTextLength = Selection.Characters.Counttintlinestart = 1tintTreatingCount = 0Selection.GoTo What:=wdGoToHeading, Which:=wdGoToAbsolute, Count:=1Selection.MoveRight unit:=wdCharacter, Count:=1, Extend:=wdExtendSelection.GoTo What:=wdGoToHeading, Which:=wdGoToAbsolute, Count:=1For tintloopx = 1 To tintTextLengthtlngCurPos = Selection.MoveRight(unit:=wdCharacter, Count:=1, Extend:=wdExtend)tstrCharA = Right(Selection.Text, 1)If AscW(tstrCharA) < 255 And AscW(tstrCharA) > -255 ThenIf tintTreatingCount > 0 ThentintA = Len(Selection.Text)SendKeys "{enter}", 2Application.Run MacroName:="FormatPhoneticGuide"Selection.MoveRight unit:=wdCharacter, Count:=tintAtintTreatingCount = 0End IfElsetintTreatingCount = tintTreatingCount + 1End IfNext'为每个字都加上空格Selection.GoTo What:=wdGoToHeading, Which:=wdGoToAbsolute, Count:=1'Selection.HomeKey unit:=wdStory For tintloopx = 1 To tintTextLengthSelection.MoveRight unit:=wdCharacter, Count:=1Selection.TypeText Text:=" "NextMsgBox "任务成功完成"' .Range.PhoneticGuide Text:="lǐ", Alignment:= _' wdPhoneticGuideAlignmentOneTwoOne, Raise:=15, FontSize:=8, FontName _' :="宋体" End Sub
转载于:https://www.cnblogs.com/DreamlikeAttic/p/3655863.html
如何为整篇word文档加拼音标注相关推荐
- 怎么给word文档注音_如何为整篇word文档加拼音标注
4月9日,打印一篇童话,突然想到如果为童话加上标音会更适合小孩阅读,就试图为整篇文档加拼音标注,但结果令我失望,微软的word加拼音有字数限制,每次只能为几十个字加拼音标注,如果以这种方式为一篇几千字 ...
- 如何把一篇Word文档里的所有换行符去掉?
如何把一篇Word文档里的所有换行符去掉? 编辑-查找,查找框输入 ^13 替换框不输入 点击全部替换 posted @ 2017-08-15 08:18 酸奶加绿茶 阅读( ...) 评论( ... ...
- 为Word文档加水印使其更加美观(转)
为Word文档加水印使其更加美观(转) 许多朋友在制作Word文档时,为使文档更加美观,喜欢在其中加上水印.而通常制作水印的方法是通过图形的层叠来实现的,但如果需要为文档中的每一页都加有相同水印的话, ...
- 解决把一篇word文档复制到另一篇word文档时, 更改标题格式
问题: 两篇word 文档的标题格式不一致,比如一个标题在一篇文档中的样式是标题1,要将其拷贝到另一篇文档的标题3位置. 解决办法: 1.将word1中的标题1 改称标题3 参考:word2016文档 ...
- 如何给word文档加水印
转自:微点阅读 https://www.weidianyuedu.com/content/3519276155101.html 怎么给word文档添加水印?这是很多人心里面都有的疑问,给word文档 ...
- 怎么翻译整篇Excel文档?Excel文档翻译一招搞定
想要翻译整篇Excel文档?不知道怎么翻译Excel文档?今天你算是赚到了,小编下面要来给大家分享几个Excel文档翻译的方法,有需要的刚好可以拿去用哦! Excel翻译工具:文档翻译器 1:打开我们 ...
- Excel VBA实现从多篇Word文档内抓取文本框内内容(书接上一篇博客)
Excel VBA实现从多篇Word文档内抓取文本框内内容(书接上一篇博客) 一.前情提要 我在上一篇博客<VBA摘取Word图形(Shapes)内文字>里验证了遍历doc文档内图形--尤 ...
- 有ppt文档翻译软件吗?如何翻译整篇ppt文档
公司最近在组织案例分析会,优秀的案例大家在一起讨论学习,但是ppt文档里有一些英文的内容,对于英文不好的同事来说理解起来很费劲,想要弄懂文件的内容,可以借助ppt文档翻译软件,将文件进行翻译,这样就能 ...
- 如何在程序中给word文档加上标和下标
如何在程序中给word文档加上标和下标 上标或下标是一个小于普通行格式的数字,图形,标志或者指示通常它的设置与行相比偏上或偏下.下标通常显示于或者低于基准线,而上标则高于.上标和下标通常被用于表达公式 ...
最新文章
- 图像拼接--Coarse-to-fine Seam Estimation for Image Stitching
- hexo-github 博客搭建
- 用c语言打电子算料,用C语言实现CRC校验计算
- Elasticsearch基础教程ES
- 中国医美市场趋势洞察报告
- 模仿王者荣耀的实时阴影
- 单元测试 代码里面都绝对路径怎么处理_python基础之包,异常处理
- SAS入门(一)理论篇
- AForge Video
- SpringCound-Alibaba
- 《天才在左 疯子在右》读书记
- echarts结合阿里云地图json选择器展示地图
- Whitelabel Error Page访问
- phpwindexp.php,phpwind 5.0.1 Sql注射漏洞利用程序脚本安全 -电脑资料
- oracle 左连接(left join) 排序问题
- 圆锥形SiC纳米磨削单晶硅源代码
- malloc函数java_malloc函数具体解释
- 靶机渗透练习41-Empire Lupin One
- 在excel表格中插入公式
- python中正则表达式 ?(问号)的详解及用法
热门文章
- 【Pycharm教程】PyCharm 配置 Python 项目运行和调试
- appium java 虫师_利用 IPython 来学习 Appium
- 知名公司薪水(转帖)
- oracle_sod,sod
- 射频数字衰减器与射频开关编程指南
- 阿里巴巴 DevOps 转型后的运维平台建设
- 替代Notepad++的Notepad--
- sql注入详解 一文了解sql注入所有常见方法
- python模块名功能明和别名_Python模块及部分常见模块详解
- 笔试真题:100颗糖果,甲乙轮流从糖果盒中取出糖果,每次可取出2、4或6颗,若取得最后糖果的玩家为最终胜者,若甲先取z则(甲获胜,乙获胜,平局,不确定)