本文目录一览:
EXCEL如何实现自动生成英语单词的音标?
之前搞过一个,包括多个翻译结果、音标、例句——网页返回结果中都有,甚至可以点击发音【音频文件从另一个网页获取】,等有空我找找
使用VBA,需要添加引用:XML和HTML【注:今天测试,代码不能运行了,测试发现是有道网页返回的内容变了,解析路径不对了~~,音标的内容好像也没有了!!以下代码仅供参考吧】
右击工作表,查看代码,粘贴以下代码:
Sub FanYi(Wrd As String, Target As Range)
'Author: cnbubble,03jb@163.com
'版本1——使用有道获取翻译意思、音标、例句;从获得MP3发音文件。【发音的代码未复制】
Dim xlmDoc As DOMDocument
Dim xlmNodes As IXMLDOMNodeList
Dim S As String, i As IXMLDOMNode, J As Integer, tagPos As Integer
Dim oExec
Wrd = Trim(Wrd)
If Wrd = "" Then Exit Sub
oExec = CreateObject("Wscript.shell").Run("ping dict.youdao.com -n 1", 0, True)
If oExec 0 Then Target.Offset(0, 1).Value = "可能未联网,翻译功能不可用!": Exit Sub
Application.EnableEvents = False
Set xlmDoc = New DOMDocument
xlmDoc.async = False
If xlmDoc.Load("" Wrd "doctype=xml") Then
Set xlmNodes = xlmDoc.SelectNodes("//translation/content") '翻译内容
S = ""
For Each i In xlmNodes
S = S i.Text vbCrLf
Next
Target.Offset(0, 1).Value = Left(S, Len(S) - 2)
Set xlmNodes = xlmDoc.SelectNodes("//phonetic-symbol") '音标
S = ""
For Each i In xlmNodes
S = S "/ " i.Text " /" vbCrLf
Next
Target.Offset(0, 2).Value = Left(S, Len(S) - 2)
Target.Offset(0, 2).Font.Color = -11489280
Set xlmNodes = xlmDoc.SelectNodes("//example-sentences/sentence-pair") '例句
J = 3
For Each i In xlmNodes
S = i.childNodes(0).Text vbCrLf i.childNodes(2).Text
tagPos = InStr(S, "b")
S = Replace(S, "b", "")
S = Replace(S, "/b", "")
With Target.Offset(0, J)
.Value = S
.Characters(tagPos, Len(Wrd)).Font.Bold = True
.Characters(tagPos, Len(Wrd)).Font.Color = vbRed
End With
J = J + 1
Next
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column 1 Or Target.Row = 1 Or Target.Cells.Count 1 Then Exit Sub
Call FanYi(Target.Value, Target)
End Sub
'在A列输入要翻译的词,自动在后面显示所有的翻译结果、音标、三个例句,这是之前实现的。现在不运行了!!。
如果只实现音标,可以从网页获取:VBA,插入一个模块,粘贴下面的代码:
Public Function getPhon(Wrd As String) As String
'查询一个单词的音标
Dim htmlDoc As String, sPhon As String
Dim oMatch
With CreateObject("Microsoft.XMLHTTP")
.Open "GET", "" Wrd, False
.send
htmlDoc = .responseText
End With
With CreateObject("VBScript.RegExp")
.Global = False
.Pattern = "span class=""phonetic""([^]+)/span"
Set oMatch = .Execute(htmlDoc)
If oMatch.Count 0 Then
getPhon = oMatch(0).submatches(0)
End If
End With
End Function
在工作表中,就像使用自带的函数一样:
之间给出字符串:
或者单元格引用:
请问怎样在word和excel中插入英语音标呢?如果能批量插入最好。
批量插入就不知道,单条插入是(Office2016不行,必须安装Office2013):
选中你要加音标的单元格,在excel最上边的函数输入栏(即有一个fx符号后边)输入:
=FILTERXML(WEBSERVICE(""A2"doctype=xml"),"//phonetic-symbol")
你用的时候需要根据你自己的情况改一下里边的参数,解释一下:
-最前边的等于号是输入函数前边必须加的;
-这个函数的原理是获取有道词典发布的webservice,然后过滤其中音标的字段,是两个函数的嵌套使用;
-(!!!特别注意)这里的q="A2"是指单词在A2单元格,如果你的单词在其它单元格,你要把这里改成你的单词所在的单元格;
-"//phonetic-symbol"指的是取xml文件的phonetic-symbol字段,这个字段里的内容就是音标,如果不加这个过滤就会把整个xml文件取出来,你可以先不加这个过滤(即公输入=WEBSERVICE(""A2"doctype=xml"))看看整个xml内容的音标在哪个字段下,因为有可能随着时间的推移,有道的xml字段名称可能会变;
-WEBSERVICE函数是获取网站发布的webservice服务的内容,内容一般是以xml格式发布的,比如我们手机上的天气预报内部其实也是通过这种方式获取的,如果你不是IT从业人员可能不太理解这部分内容,但是你要明白的是这个函数在Office2016是没有的,所以你要想使用的话必须安装Office2013;
-FILTERXML函数是用来过滤xml中某个字段内容的,如果没有这个函数就会把整个xml内容获取下来;
-如果你想批量加入,可以先加好一个单元格,然后在这个单元格右下角拖一下,这个操作是excel基础操作,这里就不多说了;
excel里的单词怎么自动生成音标?
工具:office excel
点击插入栏中的“符号”进行符号的插入,将弹出的符号窗口子集改为“标点和符号2”, 就能看到带音调的i了, 对它进行双击就可以插入了,完成.
excel里的单词 怎么自动生成音标
使用Excel 2013版新增函数WEBSERVICE、FILTERXML,可以实现在线查询。
如图所示,A列输入单词,B2输入公式可以转换音标,C2输入另外公式可以翻译词义:
B2公式:
=IF(A2="","",FILTERXML(WEBSERVICE(""A2"doctype=xml"),"//phonetic-symbol"))
C2公式:
=IF(A2="","",FILTERXML(WEBSERVICE(";i="A2"doctype=xml"),"//translation"))