作者:绿色风
分类:
时间: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, 查看下图:
代码如下:
- '请将此代码粘贴于全局模板中.
- Sub GetPinYin()
- Dim xlObj As Excel.Application, xlWb As Excel.Workbook, Hz As Range, HzRange As Excel.Range, c As Excel.Range, PY As String
- Dim WordDoc As Document, Range1 As Range, AtdName As String, DefPath As String
- On Error GoTo ErrHandle
- Application.ScreenUpdating = False
- AtdName = ActiveDocument.Name '取得活动本档名
- DefPath = ActiveDocument.Path '取得默认WORD文件夹位置
- Set WordDoc = Documents.Add '设置新文档
- Documents(AtdName).Activate '返回活动文档
- If Tasks.Exists("Microsoft Excel") = True Then '检查并建立EXCEL程序
- Set xlObj = GetObject(, "Excel.Application")
- Else
- Set xlObj = CreateObject("Excel.Application")
- End If
- Set xlWb = xlObj.Workbooks.Open(DefPath & "\ExPinYin.xls") '打开该简体拼音工作薄
- Set Myrange = xlWb.Sheets(1).Range("a1:a6763") '设置区域
- For Each Hz In ActiveDocument.Characters '在活动文档中遍历每个字
- With Myrange
- Set c = Myrange.Find(Hz, LookIn:=xlValues)
- If Not c Is Nothing Then
- PY = c.Offset(, 1) '取得工作薄中的拼音
- Hz.PhoneticGuide Text:=PY, FontSize:=10 '加注拼音指南,注意此时已变成域
- ActiveDocument.Fields(1).Cut '剪切域
- Else
- Hz.Cut '剪切没有找到的文字
- End If
- End With
- With WordDoc
- Set Range1 = .Content '在新文档的最后粘贴剪贴板上的内容
- Range1.Collapse Direction:=wdCollapseEnd
- Range1.Paste
- End With
- Next
- xlObj.Quit '关闭EXCEL程序
- WordDoc.Activate
- WordDoc.SaveAs FileName:="PinYin" & AtdName '保存新文档
- MsgBox "自动拼音加注已完成!"
- Application.ScreenUpdating = True
- Exit Sub
- ErrHandle:
- MsgBox "请检查各文件位置或者活动文档的文本内容是否超过了32000个汉字"
- End Sub
|
2楼 海洋之星 |
- Sub 批量加注拼音()
- On Error Resume Next
- ingend = ActiveDocument.Content.End
- For i = ingend To 0 Step -30
- If i - 30 <= 0 Then
- ActiveDocument.Range(0, i).Select
- Else
- ActiveDocument.Range(i - 30).Select
- End If
- SendKeys "{enter}", False
- Application.Run "formatphoneticguide"
- Next
- End Sub
|
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一