摘要:本文主要介紹運用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,在“工具”菜單,選擇“宏”→“安全性”, 選擇“安全級別”為“中”后確定)。
運用上述隨機點名軟件,使課堂提問變得更公平、自然、輕松。提高了教師開展提問的積極性,同時受到學生歡迎。我們在程序中還額外添加了考試成績綜合分析功能,提問次數限定,同時提問多人等功能。教學中取得很好效果。