Excel里的单词 怎么自动生成音标?

Excel里的单词 怎么自动生成音标?,第1张

工具:office excel

点击插入栏中的“符号”进行符号的插入,将d出的符号窗口子集改为“标点和符号2”, 就能看到带音调的i了, 对它进行双击就可以插入了,完成.

电脑Excel的运用,是不能自动批量加入音标的,必须要进行人工手动的设置,才可以达到理想的加入音标使用效果。

人们通过输入设备,把需要处理的信息输入电脑,电脑通过中央处理器,把信息加工后,再通过输出设备,把处理后的结果告诉人们。

其实这个模型很简单,举个简单的例子,你要处理的信息是1+1,你把这个信息输入到电脑中后,电脑的内部进行处理,再把处理后的结果告诉你。

早期电脑的输入设备十分落后,根本没有现在的键盘和鼠标,那时候电脑还是一个大家伙,最早的电脑有两层楼那么高。

人们只能通过扳动电脑庞大的面板上无数的开头来向电脑输入信息,而电脑把这些信息处理之后,输出设备也相当简陋,就是电脑面板上无数的信号灯。

所以那时的电脑根本无法处理像现在这样各种各样的信息,它实际上只能进行数字运算。

当时人们使用电脑也真是够累的。但在当时,就算是这种电脑也是极为先进的了,因为它把人们从繁重的手工计算中解脱出来,而且极大地提高了计算速度。

随着人们对电脑的使用,人们发现上述模型的电脑能力有限,在处理大量数据时就越发显得力不从心。为些人们对电脑模型进行了改进,提出了这种模型:

就是在中央处理器旁边加了一个内部存储器。这个模型的好处在于。

先打个比方说,如果老师让你心算一道简单题,你肯定毫不费劲就算出来了,可是如果老师让你算20个三位数相乘,

你心算起来肯定很费力,但如果给你一张草稿纸的话,你也能很快算出来。

可能你会问这和电脑有什么关系?其实电脑也是一样,一个没有内部存储器的电脑如果让它进行一个很复杂的计算,它可能根本就没有办法算出来,

因为它的存储能力有限,无法记住很多的中间的结果,但如果给它一些内部存储器当“草稿纸”的话,电脑就可以把一些中间结果临时存储到内部存储器上,

然后在需要的时候再把它取出来,进行下一步的运算,如此往复,电脑就可以完成很多很复杂的计算。

之前搞过一个,包括多个翻译结果、音标、例句——网页返回结果中都有,甚至可以点击发音【音频文件从另一个网页获取】,等有空我找找

使用VBA,需要添加引用:XML和HTML【注:今天测试,代码不能运行了,测试发现是有道网页返回的内容变了,解析路径不对了~~,音标的内容好像也没有了!!以下代码仅供参考吧】

右击工作表,查看代码,粘贴以下代码:

Sub FanYi(Wrd As String, Target As Range)

  'Author: cnbubble,03jb@163.com

  '版本1——使用有道获取翻译意思、音标、例句;从http://www.dictionary.com/获得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("http://dict.youdao.com/search?q=" &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", "http://dict.youdao.com/search?q=" &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

在工作表中,就像使用自带的函数一样:

之间给出字符串:

或者单元格引用:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11535685.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存