如何用Excel设计英语单词听写程序

如何用Excel设计英语单词听写程序,第1张

1.

&ldquo朗读单元格&rdquo按钮设计

&ldquo朗读单元格&rdquo不是&ldquo常用命令&rdquo,默认情况下在功能区中找不到这个命令。但可以通过&ldquo自定义功能区&rdquo设置,让这个命令显示在功能区工具栏上。

选择&ldquo文件&rarr选项&rdquo菜单,进入&ldquo选项&rdquo设置对话框,点击&ldquo自定义功能区&rdquo,在右边的&ldquo主选项卡&rdquo中单击选择&ldquo开始&rdquo选项卡,再点击下面的&ldquo新建组(N)&rdquo按钮新建一个自定义组。具体方法如下。

在&ldquo从下列位置选择命令(C)&rdquo中选择&ldquo不在功能区中的命令&rdquo,找到&ldquo朗读单元格&rdquo命令,用鼠标单击选择这个命令,确认上一个步骤在&ldquo开始&rdquo选项卡新建的&ldquo新建组(自定义)&rdquo处于选择状态,点击&ldquo添加&rdquo按钮。这样,&ldquo朗读单元格&rdquo命令便在&ldquo开始&rdquo选项卡显示出来。同样的道理,将&ldquo朗读单元格-停止朗读单元格&rdquo按钮也显示在这个工具栏上。结果如图1所示(图1)。

完成以上两步后,用鼠标选择要朗读的单元格,再点击&ldquo朗读单元格&rdquo按钮,系统便从上到下按顺序朗读单元格,无论是中文还是英文,都能进行朗读,朗读效果良好点击&ldquo朗读单元格-停止朗读单元格&rdquo按钮,系统停止朗读。然而,这一功能缺乏对单元格之间间隔进行设置的选项,只能按要求不停地读完所有的单元格。但听写需要时间停顿去写,因此,我们必须通过VBA来解决词与词之间的停顿间隔时间的控制问题。

2.

VBA解决停顿间隔控制

要利用Excel

VBA进行程序设计,先必须在工具栏中显示&ldquo开发工具&rdquo。进入&ldquo选项&rdquo设置对话框,单击左边的&ldquo自定义功能区&rdquo,在右边窗口中选择&ldquo开发工具&rdquo前面的复选框,&ldquo开发工具&rdquo便显示在界面上。

点击&ldquo开发工具&rdquo选项卡,再点击&ldquoVisual

Basic&rdquo按钮(或按Alt+F11),进入VBA编辑环境,单击&ldquoVBAProject

(PERSONL.XLSB)&rdquo,再选择菜单&ldquo插入&rarr用户窗体&rdquo,插入一个用户窗体后,修改其名称为tingxie,Caption(即窗体的标题)属性为&ldquo听写程序设置&rdquo。

在这个用户窗体上,分别添加两个&ldquo文字框&rdquo控件、两个&ldquo标签&rdquo控件、两个&ldquo命令按钮&rdquo控件,这些控件的&ldquo名称&rdquo都用系统默认的名称。两个&ldquo标签&rdquo的Caption属性分别是:&ldquo单词数量设置&rdquo和&ldquo听写词间间隔&rdquo,这两个标签控件放在两个&ldquo文字框&rdquo控件的前面,它的作用是为后面两个&ldquo文字框&rdquo的用途作说明两个&ldquo文字框&rdquo的Text属性分别是:20、2,这是这两个&ldquo文字框&rdquo控件的初始值,程序利用这两个控件让用户输入&ldquo单词数量设置&rdquo和&ldquo听写词间间隔&rdquo数值两个命令控钮的Caption属性分别是:确定、取消。拖动调整好窗体各控件的大小与相对位置至自己感觉合适时为止。结果如图2所示(图2)。

3.

听写程序核心技术实现

听写程序核心技术实现分为三部分进行,具体如下。

(1)赋予命令按钮以灵魂

命令按钮要赋予其可执行代码,才能变成一个&ldquo活&rdquo的按钮。

双击&ldquo确定&rdquo按钮,在其中输入如下内容:

Private

Sub

CommandButton1_Click()

n

=

Val(TextBox1)

'获取朗读单词数量

t

=

Val(TextBox2)

'获取朗读词间间隔数量,单位是秒

m

=

ActiveCell.Row

'获取当前活动单元格的行数

c

=

ActiveCell.Column

'获取当前活动单元格的列数

b

=

m

+

n

-

1

'计算从m开始朗读,共n个单词,达到要求时的最后一行的行数

On

Error

Resume

Next

Call

speakcontrol

'调用朗读控制过程

tingxie.Hide

End

Sub

双击&ldquo取消&rdquo按钮,在其中输入如下内容:

Private

Sub

CommandButton2_Click()

tingxie.Hide

End

Sub

(2)创建朗读控制过程

这个朗读控制过程的作用是确定朗读的单元格,控制朗读过程中词间间隔,如果完成了所设置的朗读任务,则退出程序。

用鼠标单击&ldquoVBAProject

(PERSONL.XLSB),再选择菜单&ldquo插入&rarr模块&rdquo,在这里要完成声明公共变量、创建朗读控制过程以及朗读过程的工作。在其中输入如下内容:

Public

a,

b,

c,

m,

n,

t

As

Integer

'定义公用变量

Sub

speakcontrol()

Dim

p,

q

q

=

ActiveSheet.Cells(1,

1).SpecialCells(xlLastCell).Row

'获取工作表的最后一行

On

Error

Resume

Next

If

t

<

10

Then

p

=

"00:00:0"

&

t

'时间在10秒以内时,计算p的方法

Else

p

=

"00:00:"

&

t

'时间在10秒或以上时,计算p的方法

End

If

If

m

>

b

Or

m

>

q

Then

'如果朗读单词达到设置数量的要求或到了最后一行,则退出程序

Exit

Sub

Else

a

=

Cells(m,

c)

'获取要朗读的单元格的文字

Application.OnTime

Now

+

TimeValue(p),

"wordspeak"

'按照设定的时间间隔调用朗读过程

End

If

End

Sub

小提示:

这里还补充说明时间间隔p的计算问题。由于时间间隔t在60秒以内的这个范围内可能是1位数,也可能是2位数,这时p计算方法不一样,因此,我们要对t的位数作判断后再选择计算p合适的方法。

(3)实施具体朗读任务

以上的朗读的控制过程并没有具体实施朗读的工作,朗读的工作由朗读过程完成任务。在以上朗读控制过程的下方,创建一个为wordspeak的朗读过程,内容如下:

Sub

wordspeak()

On

Error

Resume

Next

Application.Speech.Speak

a

'朗读设定单元格中的文字

m

=

m

+

1

'计算朗读的单元格的行数

Call

speakcontrol

'调用朗读控制过程

End

Sub

这个过程具有朗读的功能,并将朗读单元格的行数加1,下移到下一行单元格中,最后返回朗读控制过程,由控制过程确定是否再往下继续朗读单词。

(4)创建启动宏的过程

虽然以上已经有窗体以及相关的控制与朗读的过程,但还缺少一个启动宏的过程。在以上过程的下方创建一个新的过程,命名为&ldquo听写&rdquo,内容如下:

Sub

听写()

tingxie.Show

'显示听写设置窗口

End

Sub

以上各个模块内容如图3所示(图3)。为方便使用,可直接通过云盘下载后复制粘贴(

密码8r2m)。

小提示:

要运行宏,必须先通过&ldquo开发工具&rdquo选项卡,点击&ldquo宏安全性&rdquo按钮,进入到&ldquo宏设置&rdquo中选择&ldquo启用所有宏&rdquo(最下面的选项)。

在Excel

2016中调试无误后,即可运行程序。先在要朗读的单词列的最上方单元格单击,点击&ldquo开发工具&rdquo选项卡中的&ldquo宏&rdquo按钮,在d出的&ldquo宏&rdquo选择对话框中,选择&ldquo听写&rdquo宏,再点击&ldquo运行&rdquo按钮,在d出&ldquo听写程序设置&rdquo对话框中输入&ldquo单词数量设置&rdquo、&ldquo听写词间间隔&rdquo,确定后便可进行英语听写训练了。

小盒作业中的在线听写这么用:

1、打开小盒作业软件,点击进入作业详情,

2、点击底部按钮“我要交作业”,

3、接着点击听写小卡片,系统会提示打开“在线听写”小程序,点击“允许”即可。

4、在听写小程序页面,点击老师布置的听写任务,页面会提醒您在听写前,请先让小朋友准备好本和笔,准备好后点击按钮“开始听写”。

Microsoft.Speech 换成System.Speech 引用和using 命名空间都要换!

Microsoft.Speech没有自由形式的听写,在加载语法sre.LoadGrammarAsync(g)上也有所不同


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

原文地址: http://outofmemory.cn/yw/10891002.html

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

发表评论

登录后才能评论

评论列表(0条)

保存