ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
123
返回列表 发新帖
楼主: 守柔

[分享]WORD中的拼音加注程序

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-7-21 10:58 | 显示全部楼层

在守柔的启发下,我换了一下思路,对文章从后向前加拼音,在2000下通过(需要引用MS EXCEL 9.0 OBJECT LIBRARY)

Sub Addpinyin() Dim hz As Range, charcount, i charcount = ActiveDocument.Characters.Count On Error Resume Next For i = charcount To 1 Step -1 Set hz = ActiveDocument.Range(i, i + 1) If Not hz Is Nothing Then If hz <> "" And hz > "z" Then 'z合适吗? hz.Select SendKeys "{enter}", False Application.Run MacroName:="FormatPhoneticGuide" DoEvents End If End If Next i On Error GoTo 0 End Sub

TA的精华主题

TA的得分主题

发表于 2004-7-20 17:22 | 显示全部楼层

不错,好好学习一下

感谢守柔!

在2000一试用了下,发现还有一点问题,抽空再做祥细测试

[此贴子已经被作者于2004-7-21 8:46:19编辑过]

TA的精华主题

TA的得分主题

发表于 2004-7-17 12:40 | 显示全部楼层

我一直有个心愿,是直接调用微软拼音给WORD文档加拼音,用以下代码直接调用格式中拼音指南,仍不如意,拼音的对齐,字体\字号等不知道如何加,执行中也有问题,请守柔版主看看如何改进(OFFICE2000以上+微软拼音3.0)

Sub Addpinyin() Dim hz As Range On Error Resume Next For Each hz In ActiveDocument.Characters hz.Select SendKeys "{enter}{enter}", False Application.Run MacroName:="FormatPhoneticGuide" Next hz End Sub

[此贴子已经被作者于2004-7-17 14:39:18编辑过]

TA的精华主题

TA的得分主题

发表于 2004-7-14 16:33 | 显示全部楼层

好,就是音调的标志是MSPY2.0的办法,要是用3.0的办法就更好了

TA的精华主题

TA的得分主题

发表于 2009-6-6 22:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
很实用,谢谢

TA的精华主题

TA的得分主题

发表于 2010-6-4 17:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
看不见程序呀

TA的精华主题

TA的得分主题

发表于 2012-5-6 11:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
一点都不好,打开是要密码的,密码又不告诉我们,缺德

TA的精华主题

TA的得分主题

发表于 2014-10-6 00:43 | 显示全部楼层
本帖最后由 banjinjiu 于 2014-10-6 00:51 编辑

强烈建议使用菜单中的工具—宏—宏—运行Addpinyin,或者使用Alt+F8键运行该程序Addpinyin,因为有时程序会被发送的“回车”破坏。
  1. Sub GetPYin() '拼音加注
  2. Dim i As Range, FieldCount1 As Integer, FieldCount2 As Integer, ConEnd As Long, IpNumber As String
  3. Dim StartRange As Long
  4. On Error Resume Next
  5. Application.ScreenUpdating = False
  6. Selection.WholeStory
  7. IpNumber = InputBox("您必须为拼音指定统一字号,请在此输入(5~20)", "汉字自动加注拼音")
  8. If IpNumber = "" Then
  9. Exit Sub
  10. Else
  11. Selection.Font.Size = CByte(IpNumber) * 2
  12. End If
  13. For Each i In ActiveDocument.Characters
  14. If ActiveDocument.Fields.Count = 0 Then
  15. StartRange = 0
  16. Else
  17. FieldCount1 = ActiveDocument.Fields.Count
  18. ActiveDocument.Fields(FieldCount1).Select
  19. Selection.Move
  20. StartRange = Selection.Start
  21. End If
  22. ConEnd = StartRange + 30
  23. If ConEnd > ActiveDocument.Content.End Then ConEnd = ActiveDocument.Content.End
  24. ActiveDocument.Range(StartRange, ConEnd).Select
  25. SendKeys "{enter}", False
  26. Application.Run "FormatPhoneticGuide"
  27. FieldCount2 = ActiveDocument.Fields.Count
  28. If FieldCount1 = FieldCount2 Then Exit For
  29. Next
  30. Selection.WholeStory
  31. Selection.Font.Size = CByte(IpNumber) * 1.5
  32. ActiveDocument.Range(0, 0).Select
  33. Application.ScreenUpdating = True
  34. End Sub
复制代码
谢谢两位大侠。

TA的精华主题

TA的得分主题

发表于 2017-4-19 06:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
banjinjiu 发表于 2014-10-6 00:43
强烈建议使用菜单中的工具—宏—宏—运行Addpinyin,或者使用Alt+F8键运行该程序Addpinyin,因为有时程序会 ...

谢谢你的代码,好用,但是拼音字体太小,几乎看不见,也不好调大小。若能演示一下,感激不尽。
先谢了

TA的精华主题

TA的得分主题

发表于 2017-4-25 09:48 | 显示全部楼层
banjinjiu 发表于 2014-10-6 00:43
强烈建议使用菜单中的工具—宏—宏—运行Addpinyin,或者使用Alt+F8键运行该程序Addpinyin,因为有时程序会 ...

能否单独设置拼音的字体?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-25 03:29 , Processed in 0.044667 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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