论文部分内容阅读
摘要:本文主要介绍运用Microsoft Excel2003设计语音点名软件的方法。
关键词:Excel;点名
中图分类号:TP311.52文献标识码:A文章编号:1009-3044(2008)24-1236-03
The Design About Vocal Software for Call-over Based on Excel
ZOU Lai-zhi,LI Hong-jing,SHI Yan-ling
(Command Institute of Engineering Corps, Xuzhou 221004, China)
Abstract: The paper introduces the method of design about vocal software for call-over by using Microsoft Excel2003.
Key words: Excel; call-over
1 引言
按照下述方法,运用Microsoft Excel2003设计的点名软件,能让教室中的多媒体系统发音来随机点名提问,并通过点鼠标就能方便地记录学生的问答成绩。
2 建立Excel工作薄并设计表格
打开Excel2003,新建一工作薄,起名为“提问助手”。新工作薄默认有三个工作表分别是“Sheet1”、“Sheet2”和“Sheet3”。双击左下角的表名,将三个工作表分别改名为“首页”、“学生名单”和“参数设置”。
2.1 在“首页”表中添加命令按钮
令按钮用于调出提问时的主窗口。从主菜单中依次点击“视图”、“工具栏” 、“控件工具箱”,调出控件工具箱。点击控件工具箱中的“命令按钮”, 鼠标变成十字,在“首页”表中按住左键拖画出一个大小合适的按钮。其默认名称是“CommandButton1”。点击控件工具箱中的“属性”按钮,调出控件的属性窗口。确保新建按钮为选中状态,在属性窗口中将按钮的Caption属性改为“开始提问”。这就是按钮上的文字,你可以在属性窗口中改变字体大小和颜色。将按钮的第一个属性“名称”,由原来的“CommandButton1”改为Kaisi。
2.2 在“学生名单”表中设计表格
本表第1行和A-M列合并为一列填入学生年级、班别等标识信息。
本表第2行A列填入“学号”, B列填入“姓名”,这两列用于填入学生的学号和姓名。本表第2行C到M列合成一列,填入“回答成绩记录”,其下方共10列,用于记录学生回答成绩。选中这10列至100行或更多,在右键菜单中设置其单元格格式为一位小数点的数值型单元格格式。本表第2行N、O、P列分别填入“提问次数”、“问答得分”、“总评成绩”。
本表N列(即“提问次数”列)第3行,填入统计非空单元格的函数“=COUNT(C3:M3)”,它自动统计该行C列到M列的有记录的单元格数目,即该行对应学生被提问次数,以便最后总评成绩。N3单元格填好函数后,鼠标放到该单元格右下角,按鼠标左键下拉至100行或更多。则该列这些行都自动填好与N3单元格功能一致的函数。
本表O列(即“问答得分”列)第3行,填入求和函数“=SUM(C3:M3)”,用来计算该行对应学生的回答问题所得总分。O3单元格填好函数后,如上用鼠标下拉的方法将相同功能的函数填至该列100行或更多。
本表P列(即“总评成绩”列)3行,填入“=100*O3/N3”, 用来计算该行对应学生的回答问题所得平均分,并以百分形式表示。无数据时,因除0,单元格显示“#DIV/0!”不必理会。P3单元格填好函数后,如上用鼠标下拉的方法将相同功能的函数填至该列100行或更多。
2.3 在“参数设置”表中设计参数设置项
本表1行A、B两列合并,填入“参数设置”四字。
A列3行填入“名单开始行”,同行B列填入“3”,因为名单是从第3行开始的。
A列4行填入“名单结束行”,同行B列填入最后一名学生所在行行号,因为不同班次人数不同,所以B4中填入的是依学生人数而定的参数。
3 建立窗体、控件及宏
从主菜单中依次点击“工具”、“宏”、“Visual Basic编辑器”,打开Excel2003自带的VBA编程工具(也可按Alt F11直接打开)。
3.1 建立窗体
打开“Visual Basic编辑器”后,点击菜单中“插入”、“用户窗体”,会出现一个名为UserForm1空白窗体。按F4打开UserForm1空白窗体的属性,将其Caption属性改为“课堂提问助手”,Height(窗体高)设为300,Wigth(窗体宽)设为400。其它保持不变。
3.2 在窗体上添加控件
添加两个标签控件(选中工具箱中的A图标,在窗体上按左键拖拉即可), 在属性框中,将其Caption属性由label1、label2分别改为“学号”和“姓名”,设置合适的字体大小和颜色。添加两个文本框控件,设置合适的字体大小和颜色。注意其原有名称分别是TextBox1和TextBox2。添加五个按钮控件,将其Caption属性分别改为“提问学生”、“回答正确” 、“基本正确” 、“回答错误”和“退出”。 设置合适的字体大小和颜色。保持它们原名称CommandButton1、CommandButton2、..、CommandButton5不变。
3.3 创建模块
“Visual Basic编辑器”中,点击菜单中“插入”、“模块”。左侧的工程资源管理器(工程-VBAProject)中多了模块一项。同时自动打开通用代码窗口,在其中填入下列代码声明公共变量、公用子程序,留待后用。
Public hang_hao, lie_hao As String
Public shou_hang, mo_hang, shou_mo,xAs Integer
Sub UseSpeech(sp)
On Error GoTo ErrH
If Trim(sp) <> "" Then
Application.Speech.Speak sp
End If
ErrH:
End Sub
后七行代码是调用Excel文体到语音功能的子程序,后面将会用它。
3.4 创建宏
模块填完代码后按F5会弹出宏对话框,在宏名称中填入Tiwen,点击对话框中的创建,创建了宏。同时自动打开通用代码窗口,在其中填入程序代码(其中首行和末行自动生成,下同):
Sub Tiwen()
UserForm1.Show
End Sub
4 为窗体及控件添加代码
仍然在“Visual Basic编辑器”中。
4.1 为“首页”表中的按钮Kaisi添加代码
在左侧的工程资源管理器中双击Sheet1(首页)图标,打开代码窗口,为按钮Kaisi填入Click事件代码如下:
Private Sub Kaisi_Click()
Call Tiwen
End Sub
当用户点击“首页”表中的按钮Kaisi时,调用宏Tiwen使UserForm1窗体打开。
4.2 为窗体添加初始化代码
双击窗体UserForm1,在出现的代码窗口右上方点下拉列表,选择Activate事件,在代码区填入下列代码:
Private Sub UserForm_Activate()
shou_hang = Trim(Sheets("参数设置").Range("B3").Value)
mo_hang = Trim(Sheets("参数设置").Range("B4").Value)
shou_mo = mo_hang - shou_hang 1
UserForm1.CommandButton2.Enabled = False
UserForm1.CommandButton3.Enabled = False
UserForm1.CommandButton4.Enabled = False
End Sub
上述代码作用是窗体激活时读入参数设置表中的数值,并设定三个按钮状态。
4.3 为“提问学生”按钮CommandButton1添加代码
双击“提问学生”按钮,在出现的代码窗口, 填入下列代码:
Private Sub CommandButton1_Click()
Randomize
x = Int(shou_mo * Rnd) shou_hang
hang_hao = Trim(Str(x))
UserForm1.TextBox1.Text = Sheets("学生名单").Range("A" hang_hao).Value
UserForm1.TextBox2.Text = Sheets("学生名单").Range("B" hang_hao).Value
x = Sheets("学生名单").Range("N" hang_hao).Value
lie_hao = Chr(Asc("c") x)
UserForm1.CommandButton2.Enabled = True
UserForm1.CommandButton3.Enabled = True
UserForm1.CommandButton4.Enabled = True
Call UseSpeech(UserForm1.TextBox2.Text)
End Sub
上述代码作用是用户点击“提问学生”按钮时,随机生成一个行号,并将该行学生姓名,学号显示出来,同时激活另三个按钮,最后调用Excel文体到语音功能,朗读姓名。
4.4 为“回答正确”按钮CommandButton2添加代码
双击“回答正确”按钮,在出现的代码窗口, 填入下列代码:
Private Sub CommandButton2_Click()
Sheets("学生名单").Range(lie_hao hang_hao).Value = 1
UserForm1.TextBox1.Text = ""
UserForm1.TextBox2.Text = ""
Call UseSpeech("回答正确")
UserForm1.CommandButton2.Enabled = False
UserForm1.CommandButton3.Enabled = False
UserForm1.CommandButton4.Enabled = False
End Sub
上述代码作用是为回答正确的学生记录1,朗读“回答正确”,三个按钮回到禁用状态。
类似地,为“基本正确” 、“回答错误”两按钮添加代码,只需将1分别改为0.6和0,将“回答正确”分别改为“基本正确” 、“回答错误”即可。
最后为“退出”按钮填入下列代码就大功造成了。
Private Sub CommandButton5_Click()
UserForm1.Hide
End Sub
5 结束语
要实现语音朗读,Excel2003(或更高版)需要安装从文本到语音功能,还要为windows系统作一下设置。点击“开始”菜单,选择“控制面板”栏,再选取“语音”项。弹出“语音属性”对话框后,选择“文本到语音转换”标签。在“语音选择”组中选择“Microsoft Simplified Chinese”作为默认语音。点击“预听语音”,就可以听到普通话的语音了。另外需将Excel宏的安全性设定为“中”,否则不运行宏(打开Excel2003,在“工具”菜单,选择“宏”→“安全性”, 选择“安全级别”为“中”后确定)。
运用上述随机点名软件,使课堂提问变得更公平、自然、轻松。提高了教师开展提问的积极性,同时受到学生欢迎。我们在程序中还额外添加了考试成绩综合分析功能,提问次数限定,同时提问多人等功能。教学中取得很好效果。
关键词:Excel;点名
中图分类号:TP311.52文献标识码:A文章编号:1009-3044(2008)24-1236-03
The Design About Vocal Software for Call-over Based on Excel
ZOU Lai-zhi,LI Hong-jing,SHI Yan-ling
(Command Institute of Engineering Corps, Xuzhou 221004, China)
Abstract: The paper introduces the method of design about vocal software for call-over by using Microsoft Excel2003.
Key words: Excel; call-over
1 引言
按照下述方法,运用Microsoft Excel2003设计的点名软件,能让教室中的多媒体系统发音来随机点名提问,并通过点鼠标就能方便地记录学生的问答成绩。
2 建立Excel工作薄并设计表格
打开Excel2003,新建一工作薄,起名为“提问助手”。新工作薄默认有三个工作表分别是“Sheet1”、“Sheet2”和“Sheet3”。双击左下角的表名,将三个工作表分别改名为“首页”、“学生名单”和“参数设置”。
2.1 在“首页”表中添加命令按钮
令按钮用于调出提问时的主窗口。从主菜单中依次点击“视图”、“工具栏” 、“控件工具箱”,调出控件工具箱。点击控件工具箱中的“命令按钮”, 鼠标变成十字,在“首页”表中按住左键拖画出一个大小合适的按钮。其默认名称是“CommandButton1”。点击控件工具箱中的“属性”按钮,调出控件的属性窗口。确保新建按钮为选中状态,在属性窗口中将按钮的Caption属性改为“开始提问”。这就是按钮上的文字,你可以在属性窗口中改变字体大小和颜色。将按钮的第一个属性“名称”,由原来的“CommandButton1”改为Kaisi。
2.2 在“学生名单”表中设计表格
本表第1行和A-M列合并为一列填入学生年级、班别等标识信息。
本表第2行A列填入“学号”, B列填入“姓名”,这两列用于填入学生的学号和姓名。本表第2行C到M列合成一列,填入“回答成绩记录”,其下方共10列,用于记录学生回答成绩。选中这10列至100行或更多,在右键菜单中设置其单元格格式为一位小数点的数值型单元格格式。本表第2行N、O、P列分别填入“提问次数”、“问答得分”、“总评成绩”。
本表N列(即“提问次数”列)第3行,填入统计非空单元格的函数“=COUNT(C3:M3)”,它自动统计该行C列到M列的有记录的单元格数目,即该行对应学生被提问次数,以便最后总评成绩。N3单元格填好函数后,鼠标放到该单元格右下角,按鼠标左键下拉至100行或更多。则该列这些行都自动填好与N3单元格功能一致的函数。
本表O列(即“问答得分”列)第3行,填入求和函数“=SUM(C3:M3)”,用来计算该行对应学生的回答问题所得总分。O3单元格填好函数后,如上用鼠标下拉的方法将相同功能的函数填至该列100行或更多。
本表P列(即“总评成绩”列)3行,填入“=100*O3/N3”, 用来计算该行对应学生的回答问题所得平均分,并以百分形式表示。无数据时,因除0,单元格显示“#DIV/0!”不必理会。P3单元格填好函数后,如上用鼠标下拉的方法将相同功能的函数填至该列100行或更多。
2.3 在“参数设置”表中设计参数设置项
本表1行A、B两列合并,填入“参数设置”四字。
A列3行填入“名单开始行”,同行B列填入“3”,因为名单是从第3行开始的。
A列4行填入“名单结束行”,同行B列填入最后一名学生所在行行号,因为不同班次人数不同,所以B4中填入的是依学生人数而定的参数。
3 建立窗体、控件及宏
从主菜单中依次点击“工具”、“宏”、“Visual Basic编辑器”,打开Excel2003自带的VBA编程工具(也可按Alt F11直接打开)。
3.1 建立窗体
打开“Visual Basic编辑器”后,点击菜单中“插入”、“用户窗体”,会出现一个名为UserForm1空白窗体。按F4打开UserForm1空白窗体的属性,将其Caption属性改为“课堂提问助手”,Height(窗体高)设为300,Wigth(窗体宽)设为400。其它保持不变。
3.2 在窗体上添加控件
添加两个标签控件(选中工具箱中的A图标,在窗体上按左键拖拉即可), 在属性框中,将其Caption属性由label1、label2分别改为“学号”和“姓名”,设置合适的字体大小和颜色。添加两个文本框控件,设置合适的字体大小和颜色。注意其原有名称分别是TextBox1和TextBox2。添加五个按钮控件,将其Caption属性分别改为“提问学生”、“回答正确” 、“基本正确” 、“回答错误”和“退出”。 设置合适的字体大小和颜色。保持它们原名称CommandButton1、CommandButton2、..、CommandButton5不变。
3.3 创建模块
“Visual Basic编辑器”中,点击菜单中“插入”、“模块”。左侧的工程资源管理器(工程-VBAProject)中多了模块一项。同时自动打开通用代码窗口,在其中填入下列代码声明公共变量、公用子程序,留待后用。
Public hang_hao, lie_hao As String
Public shou_hang, mo_hang, shou_mo,xAs Integer
Sub UseSpeech(sp)
On Error GoTo ErrH
If Trim(sp) <> "" Then
Application.Speech.Speak sp
End If
ErrH:
End Sub
后七行代码是调用Excel文体到语音功能的子程序,后面将会用它。
3.4 创建宏
模块填完代码后按F5会弹出宏对话框,在宏名称中填入Tiwen,点击对话框中的创建,创建了宏。同时自动打开通用代码窗口,在其中填入程序代码(其中首行和末行自动生成,下同):
Sub Tiwen()
UserForm1.Show
End Sub
4 为窗体及控件添加代码
仍然在“Visual Basic编辑器”中。
4.1 为“首页”表中的按钮Kaisi添加代码
在左侧的工程资源管理器中双击Sheet1(首页)图标,打开代码窗口,为按钮Kaisi填入Click事件代码如下:
Private Sub Kaisi_Click()
Call Tiwen
End Sub
当用户点击“首页”表中的按钮Kaisi时,调用宏Tiwen使UserForm1窗体打开。
4.2 为窗体添加初始化代码
双击窗体UserForm1,在出现的代码窗口右上方点下拉列表,选择Activate事件,在代码区填入下列代码:
Private Sub UserForm_Activate()
shou_hang = Trim(Sheets("参数设置").Range("B3").Value)
mo_hang = Trim(Sheets("参数设置").Range("B4").Value)
shou_mo = mo_hang - shou_hang 1
UserForm1.CommandButton2.Enabled = False
UserForm1.CommandButton3.Enabled = False
UserForm1.CommandButton4.Enabled = False
End Sub
上述代码作用是窗体激活时读入参数设置表中的数值,并设定三个按钮状态。
4.3 为“提问学生”按钮CommandButton1添加代码
双击“提问学生”按钮,在出现的代码窗口, 填入下列代码:
Private Sub CommandButton1_Click()
Randomize
x = Int(shou_mo * Rnd) shou_hang
hang_hao = Trim(Str(x))
UserForm1.TextBox1.Text = Sheets("学生名单").Range("A" hang_hao).Value
UserForm1.TextBox2.Text = Sheets("学生名单").Range("B" hang_hao).Value
x = Sheets("学生名单").Range("N" hang_hao).Value
lie_hao = Chr(Asc("c") x)
UserForm1.CommandButton2.Enabled = True
UserForm1.CommandButton3.Enabled = True
UserForm1.CommandButton4.Enabled = True
Call UseSpeech(UserForm1.TextBox2.Text)
End Sub
上述代码作用是用户点击“提问学生”按钮时,随机生成一个行号,并将该行学生姓名,学号显示出来,同时激活另三个按钮,最后调用Excel文体到语音功能,朗读姓名。
4.4 为“回答正确”按钮CommandButton2添加代码
双击“回答正确”按钮,在出现的代码窗口, 填入下列代码:
Private Sub CommandButton2_Click()
Sheets("学生名单").Range(lie_hao hang_hao).Value = 1
UserForm1.TextBox1.Text = ""
UserForm1.TextBox2.Text = ""
Call UseSpeech("回答正确")
UserForm1.CommandButton2.Enabled = False
UserForm1.CommandButton3.Enabled = False
UserForm1.CommandButton4.Enabled = False
End Sub
上述代码作用是为回答正确的学生记录1,朗读“回答正确”,三个按钮回到禁用状态。
类似地,为“基本正确” 、“回答错误”两按钮添加代码,只需将1分别改为0.6和0,将“回答正确”分别改为“基本正确” 、“回答错误”即可。
最后为“退出”按钮填入下列代码就大功造成了。
Private Sub CommandButton5_Click()
UserForm1.Hide
End Sub
5 结束语
要实现语音朗读,Excel2003(或更高版)需要安装从文本到语音功能,还要为windows系统作一下设置。点击“开始”菜单,选择“控制面板”栏,再选取“语音”项。弹出“语音属性”对话框后,选择“文本到语音转换”标签。在“语音选择”组中选择“Microsoft Simplified Chinese”作为默认语音。点击“预听语音”,就可以听到普通话的语音了。另外需将Excel宏的安全性设定为“中”,否则不运行宏(打开Excel2003,在“工具”菜单,选择“宏”→“安全性”, 选择“安全级别”为“中”后确定)。
运用上述随机点名软件,使课堂提问变得更公平、自然、轻松。提高了教师开展提问的积极性,同时受到学生欢迎。我们在程序中还额外添加了考试成绩综合分析功能,提问次数限定,同时提问多人等功能。教学中取得很好效果。