使用EXCEL VBA辅助背单词.可以一键获取音标和翻译,可播放英音美音

一、概要

通过excel辅助背单词,当前只简单实现美音、英音和一键获取音标和解释

20230129更新:

1:优化【一键获取音标和解释】,根据词性自动换行。

2:支持短语可进行翻译,部分短语可获取音标。

效果如图:

1、自动翻译

使用EXCEL VBA辅助背单词.可以一键获取音标和翻译,可播放英音美音_第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 

你可能感兴趣的:(EXCEL,背单词,VBA,excel,json,自动翻译)