ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Word > 为文档添加拼音

为文档添加拼音

作者:绿色风 分类: 时间:2022-08-18 浏览:194
楼主
篮板球
可以尝试通过Excel对照查找文字找添加拼音的代码,不用考虑定义文件夹目录。

共享地址如下:https://skydrive.live.com/redir.aspx?cid=1ea35c8098b0c128&resid=1EA35C8098B0C128!140&parid=1EA35C8098B0C128!139

注:

确认只打开Excel字典文件;
可以将代码添加到Normal.dotm;
请在VB编辑器的工具菜单/ 引用中勾选Microsoft Excel 14.0 object library, 查看下图:


代码如下:

  1. '请将此代码粘贴于全局模板中.
  2. Sub GetPinYin()
  3. Dim xlObj As Excel.Application, xlWb As Excel.Workbook, Hz As Range, HzRange As Excel.Range, c As Excel.Range, PY As String
  4. Dim WordDoc As Document, Range1 As Range, AtdName As String, DefPath As String
  5. On Error GoTo ErrHandle
  6. Application.ScreenUpdating = False
  7. AtdName = ActiveDocument.Name '取得活动本档名
  8. DefPath = ActiveDocument.Path '取得默认WORD文件夹位置
  9. Set WordDoc = Documents.Add '设置新文档
  10. Documents(AtdName).Activate '返回活动文档
  11. If Tasks.Exists("Microsoft Excel") = True Then '检查并建立EXCEL程序
  12.     Set xlObj = GetObject(, "Excel.Application")
  13. Else
  14.     Set xlObj = CreateObject("Excel.Application")
  15. End If
  16. Set xlWb = xlObj.Workbooks.Open(DefPath & "\ExPinYin.xls") '打开该简体拼音工作薄
  17. Set Myrange = xlWb.Sheets(1).Range("a1:a6763") '设置区域
  18. For Each Hz In ActiveDocument.Characters '在活动文档中遍历每个字
  19.         With Myrange
  20.             Set c = Myrange.Find(Hz, LookIn:=xlValues)
  21.                 If Not c Is Nothing Then
  22.                     PY = c.Offset(, 1) '取得工作薄中的拼音
  23.                     Hz.PhoneticGuide Text:=PY, FontSize:=10 '加注拼音指南,注意此时已变成域
  24.                    ActiveDocument.Fields(1).Cut '剪切域
  25.                 Else
  26.                     Hz.Cut '剪切没有找到的文字
  27.                 End If
  28.         End With
  29.     With WordDoc
  30.     Set Range1 = .Content '在新文档的最后粘贴剪贴板上的内容
  31.     Range1.Collapse Direction:=wdCollapseEnd
  32.     Range1.Paste
  33.     End With
  34. Next
  35. xlObj.Quit '关闭EXCEL程序
  36. WordDoc.Activate
  37. WordDoc.SaveAs FileName:="PinYin" & AtdName '保存新文档
  38. MsgBox "自动拼音加注已完成!"
  39. Application.ScreenUpdating = True
  40. Exit Sub
  41. ErrHandle:
  42. MsgBox "请检查各文件位置或者活动文档的文本内容是否超过了32000个汉字"
  43. End Sub
2楼
海洋之星
  1. Sub 批量加注拼音()
  2. On Error Resume Next
  3. ingend = ActiveDocument.Content.End
  4. For i = ingend To 0 Step -30
  5. If i - 30 <= 0 Then
  6. ActiveDocument.Range(0, i).Select
  7. Else
  8. ActiveDocument.Range(i - 30).Select
  9. End If
  10. SendKeys "{enter}", False
  11. Application.Run "formatphoneticguide"
  12. Next
  13. End Sub

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap