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文档加拼音标注相关推荐

  1. 怎么给word文档注音_如何为整篇word文档加拼音标注

    4月9日,打印一篇童话,突然想到如果为童话加上标音会更适合小孩阅读,就试图为整篇文档加拼音标注,但结果令我失望,微软的word加拼音有字数限制,每次只能为几十个字加拼音标注,如果以这种方式为一篇几千字 ...

  2. 如何把一篇Word文档里的所有换行符去掉?

    如何把一篇Word文档里的所有换行符去掉? 编辑-查找,查找框输入 ^13 替换框不输入 点击全部替换 posted @ 2017-08-15 08:18 酸奶加绿茶 阅读( ...) 评论( ... ...

  3. 为Word文档加水印使其更加美观(转)

    为Word文档加水印使其更加美观(转) 许多朋友在制作Word文档时,为使文档更加美观,喜欢在其中加上水印.而通常制作水印的方法是通过图形的层叠来实现的,但如果需要为文档中的每一页都加有相同水印的话, ...

  4. 解决把一篇word文档复制到另一篇word文档时, 更改标题格式

    问题: 两篇word 文档的标题格式不一致,比如一个标题在一篇文档中的样式是标题1,要将其拷贝到另一篇文档的标题3位置. 解决办法: 1.将word1中的标题1 改称标题3 参考:word2016文档 ...

  5. 如何给word文档加水印

    转自:微点阅读  https://www.weidianyuedu.com/content/3519276155101.html 怎么给word文档添加水印?这是很多人心里面都有的疑问,给word文档 ...

  6. 怎么翻译整篇Excel文档?Excel文档翻译一招搞定

    想要翻译整篇Excel文档?不知道怎么翻译Excel文档?今天你算是赚到了,小编下面要来给大家分享几个Excel文档翻译的方法,有需要的刚好可以拿去用哦! Excel翻译工具:文档翻译器 1:打开我们 ...

  7. Excel VBA实现从多篇Word文档内抓取文本框内内容(书接上一篇博客)

    Excel VBA实现从多篇Word文档内抓取文本框内内容(书接上一篇博客) 一.前情提要 我在上一篇博客<VBA摘取Word图形(Shapes)内文字>里验证了遍历doc文档内图形--尤 ...

  8. 有ppt文档翻译软件吗?如何翻译整篇ppt文档

    公司最近在组织案例分析会,优秀的案例大家在一起讨论学习,但是ppt文档里有一些英文的内容,对于英文不好的同事来说理解起来很费劲,想要弄懂文件的内容,可以借助ppt文档翻译软件,将文件进行翻译,这样就能 ...

  9. 如何在程序中给word文档加上标和下标

    如何在程序中给word文档加上标和下标 上标或下标是一个小于普通行格式的数字,图形,标志或者指示通常它的设置与行相比偏上或偏下.下标通常显示于或者低于基准线,而上标则高于.上标和下标通常被用于表达公式 ...

最新文章

  1. 图像拼接--Coarse-to-fine Seam Estimation for Image Stitching
  2. hexo-github 博客搭建
  3. 用c语言打电子算料,用C语言实现CRC校验计算
  4. Elasticsearch基础教程ES
  5. 中国医美市场趋势洞察报告
  6. 模仿王者荣耀的实时阴影
  7. 单元测试 代码里面都绝对路径怎么处理_python基础之包,异常处理
  8. SAS入门(一)理论篇
  9. AForge Video
  10. SpringCound-Alibaba
  11. 《天才在左 疯子在右》读书记
  12. echarts结合阿里云地图json选择器展示地图
  13. Whitelabel Error Page访问
  14. phpwindexp.php,phpwind 5.0.1 Sql注射漏洞利用程序脚本安全 -电脑资料
  15. oracle 左连接(left join) 排序问题
  16. 圆锥形SiC纳米磨削单晶硅源代码
  17. malloc函数java_malloc函数具体解释
  18. 靶机渗透练习41-Empire Lupin One
  19. 在excel表格中插入公式
  20. python中正则表达式 ?(问号)的详解及用法

热门文章

  1. 【Pycharm教程】PyCharm 配置 Python 项目运行和调试
  2. appium java 虫师_利用 IPython 来学习 Appium
  3. 知名公司薪水(转帖)
  4. oracle_sod,sod
  5. 射频数字衰减器与射频开关编程指南
  6. 阿里巴巴 DevOps 转型后的运维平台建设
  7. 替代Notepad++的Notepad--
  8. sql注入详解 一文了解sql注入所有常见方法
  9. python模块名功能明和别名_Python模块及部分常见模块详解
  10. 笔试真题:100颗糖果,甲乙轮流从糖果盒中取出糖果,每次可取出2、4或6颗,若取得最后糖果的玩家为最终胜者,若甲先取z则(甲获胜,乙获胜,平局,不确定)