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)创建启动宏的过程 虽然以上已经有窗体以及相关的控制与朗读的过程,但还缺少一个启动宏的过程。在以上过程的下方创建一个新的过程,命名为“听写”,内容如下: Sub 听写() tingxIE.Show '显示听写设置窗口 End Sub 以上各个模块内容如图3所示(图3)。为方便使用,可直接通过云盘下载后复制粘贴(http://pan.baidu.com/s/1qXcTKFq 密码8r2m)。 小提示: 要运行宏,必须先通过“开发工具”选项卡,点击“宏安全性”按钮,进入到“宏设置”中选择“启用所有宏”(最下面的选项)。 在Excel 2016中调试无误后,即可运行程序。先在要朗读的单词列的最上方单元格单击,点击“开发工具”选项卡中的“宏”按钮,在弹出的“宏”选择对话框中,选择“听写”宏,再点击“运行”按钮,在弹出“听写程序设置”对话框中输入“单词数量设置”、“听写词间间隔”,确定后便可进行英语听写训练了。 |