EXCEL如何自动生成英文单词的音标?
要使用VBA,需要添加引用:XML和HTML注意:今天的测试,代码无法运行。测试发现某网页返回的内容有变化,解析路径错误~ ~,音标内容好像没有了!!以下代码仅供参考。
右键单击工作表,查看代码并粘贴以下代码:
子樊沂(字符串形式的Wrd,范围形式的Target)
作者:cnbubble,03jb@163.com
1版——用有道获取翻译意思、音标、例句;从/获得MP3发音文件。发音码不抄。
Dim xlmDoc作为DOMDocument
Dim xlmNodes作为IXMLDOMNodeList
Dim S为字符串,I为IXMLDOMNode,J为整数,tagPos为整数
Dim oExec
Wrd =微调(Wrd)
如果Wrd = " "则退出Sub
OE xec = CreateObject(" wscript . shell ")。run(" ping dict.youdao.com-n 1 ",0,True)
如果oExec & lt& gt0然后目标。偏移量(0,1)。value = "可能没有联网,翻译功能不可用!":出口接头
申请。EnableEvents = False
Set xlmDoc = New DOMDocument
xlmDoc.async = False
如果xlmDoc。Load("/search?q = " & ampWrd & amp“& ampdoctype=xml”)那么
set xlm nodes = xlm doc . select nodes("//translation/content ")'翻译内容。
S = " "
对于xlmNodes中的每个I
S =标准普尔。一、文本与文本。vbCrLf
然后
目标。偏移量(0,1)。值=左(S,Len(S) - 2)
?
set xlm nodes = xlm doc . select nodes("//phonetic-symbol ")'注音符号
S = " "
对于xlmNodes中的每个I
S =标准普尔。"/? "& amp一、文本与文本。"?/& amp;vbCrLf
然后
目标。偏移量(0,2)。值=左(S,Len(S) - 2)
目标。Offset(0,2),font . color =-11489280。
?
set xlm nodes = xlm doc . select nodes("//Example-sentences/sentences-pair ")' Example
J = 3
对于xlmNodes中的每个I
S = i.childNodes(0)。文本& ampvbCrLf & amp;i.childNodes(2)。文本
tagPos = InStr(S," & ltb >;)
S = Replace(S," & ltb >;, "")
S = Replace(S," & lt/b & gt;, "")
有目标。偏移量(0,J)
。值= S
。Characters(tagPos,Len(Wrd)),Font.Bold = True。
。Characters(tagPos,Len(Wrd)),Font.Color = vbRed。
以…结尾
J = J + 1
然后
如果…就会结束
申请。EnableEvents = True
末端接头
私有子工作表_Change(ByVal目标作为范围)
如果目标。Column & gt1或目标。Row = 1或Target。细胞计数& gt1然后退出接头
打电话给樊沂(目标。价值,目标)
末端接头
在A栏输入要翻译的单词,后面自动显示所有的翻译结果、音标和三个例句,这是之前实现的。现在不跑了!!。
如果只实现音标,可以从网页中获取VBA,插入一个模块,粘贴以下代码:
公共函数getPhon(Wrd As String) As String
查找单词的音标
Dim htmlDoc为字符串,sPhon为字符串
Dim oMatch
用CreateObject(“微软。XMLHTTP”)
。打开“获取”,“/搜索?q = " & ampWrd,假
。派遣
htmlDoc =。响应文本
以…结尾
用CreateObject("VBScript。正则表达式”)
。全局=假
。Pattern = " & ltspan class = " " phonetic " " & gt(【^<;]+)& lt;/span >;
Set oMatch =。执行(htmlDoc)
如果奥马奇。Count & gt那么0
getPhon = oMatch(0)。子匹配项(0)
如果…就会结束
以…结尾
结束功能
在工作表中,就像使用自己的函数一样:
给出一个字符串在:
或单元格引用: