一、概要
通过excel辅助背单词,当前只简单实现美音、英音和一键获取音标和解释
20230129更新:
1:优化【一键获取音标和解释】,根据词性自动换行。
2:支持短语可进行翻译,部分短语可获取音标。
效果如图:
1、自动翻译
2、英、美音自动播放
英音美音自动发音
二、实现方法
1、必要条件
1.1 开启excel宏!
参考:【VBA】excel开启宏,打开开发者模式_vba宏的免费启用方法-CSDN博客
1.2 必须连接互联网!
2、代码
2.1 一键获取音标和解释
Sub onestepget()
Dim url As String
'创建XMLHTTP对象
Set http = CreateObject("MSXML2.XMLHTTP")
'设置URL
url = "https://dict.youdao.com/jsonapi?q=" & Selection.value
'发送GET请求
http.Open "GET", url, False
http.setRequestHeader "Content-Type", "application/json"
http.send
'获取响应数据
response = http.responseText
' 定义JSON字符串,这通常是从某个来源(例如API请求)获取到的
Dim jsonString As String
jsonString = response
' 使用Scripting.Dictionary
Dim json As Object
Set json = JsonConverter.ParseJson(jsonString)
' 获取音标
Dim usphone As String
Dim ukphone As String
usphone = json("ec")("word")(1)("usphone") '获取美式音标
ukphone = json("ec")("word")(1)("ukphone") '获取英式音标
Selection.Offset(0, 1).value = "英[" & ukphone & "]" & vbCrLf & "美[" & usphone & "]"
Dim trans1 As String
Dim trans2 As String
Dim trans3 As String
Dim trans4 As String
Dim trans5 As String
Dim i As Byte
Dim j As Byte
j = json("ec")("word")(1)("trs").Count
For i = 1 To j
Select Case i
Case 1
trans1 = json("ec")("word")(1)("trs")(i)("tr")(1)("l")("i")(1)
Selection.Offset(0, 2).value = trans1
Case 2
trans2 = json("ec")("word")(1)("trs")(i)("tr")(1)("l")("i")(1)
Selection.Offset(0, 2).value = trans1 & vbCrLf & trans2
Case 3
trans3 = json("ec")("word")(1)("trs")(i)("tr")(1)("l")("i")(1)
Selection.Offset(0, 2).value = trans1 & vbCrLf & trans2 & vbCrLf & trans3
Case 4
trans4 = json("ec")("word")(1)("trs")(i)("tr")(1)("l")("i")(1)
Selection.Offset(0, 2).value = trans1 & vbCrLf & trans2 & vbCrLf & trans3 & vbCrLf & trans4
Case 5
trans5 = json("ec")("word")(1)("trs")(i)("tr")(1)("l")("i")(1)
Selection.Offset(0, 2).value = trans1 & vbCrLf & trans2 & vbCrLf & trans3 & vbCrLf & trans4 & vbCrLf & trans5
End Select
Next
2.2 通过有道云接口获取音频文件,并通过windows Media Player进行播放
Sub playUK()
'获取读音音频文件
Sheets("sheet2").WindowsMediaPlayer1.url = "http://dict.youdao.com/dictvoice?audio=" & Selection.value & "&type=1"
'播放音频
Sheets("sheet2").WindowsMediaPlayer1.Controls.play
End Sub
Sub playUN()
Sheets("sheet2").WindowsMediaPlayer1.url = "http://dict.youdao.com/dictvoice?audio=" & Selection.value & "&type=2"
Sheets("sheet2").WindowsMediaPlayer1.Controls.play '播放
End Sub
感兴趣的话收藏点赞关注留言继续更新实现方法
或者自己可以研究一下,资源免费:
链接地址:
CSDN:【免费】通过excel辅助背英文单词、一键生成解释、实现美音英音发音资源-CSDN文库
百度云:
链接:https://pan.baidu.com/s/1ii4nVanVboZEHOMEmeoWlg
提取码:g0fk