仝海燕,呂洪善,秦春影,賈爽
(1.亳州師范高等專科學校理化系;2.亳州職業技術學院電子與電氣工程系,安徽亳州236800)
基于VBA的交互性習題的設計
仝海燕1,呂洪善2,秦春影1,賈爽1
(1.亳州師范高等專科學校理化系;2.亳州職業技術學院電子與電氣工程系,安徽亳州236800)
當前,大部分課件制作者都是利用自定義動畫和觸發器制作,很少有人用VBA控件實現具有交互性的習題. VBA作為O ffice系列軟件的二次開發和擴展工具,在課件制作中能夠起到很好的輔助作用.以單項選擇題為例,分析了在PowerPoint課件中具有交互性的習題設計方法,指出了在習題數量較少和較多的情況下,如何使用VBA編程語言和Access數據庫相關技術制作符合學習認知規律、自主選擇、交互性更好的習題.
VBA編程;課件;VB控件;Access數據庫;認知
隨著信息技術的不斷發展,很多學校都引進了大量的多媒體教學設施,有效的利用這些多媒體設施可以很好的提高教學質量.要充分的利用這些設施,教師就要在教學中根據具體授課情況制作符合學生認知的課件.目前,制作課件的工具有很多,如Authorware、Flash、PowerPoint等軟件都可以實現課件的制作.相比較而言,PowerPoint軟件具有使用簡單,易學易用,兼容性好等優點,在實際課件制作中,深受廣大使用者的歡迎.
有些人認為,利用PowerPoint制作交互性習題時,沒有其他軟件制作的效果明顯.也有些教師為方便起見,直接將題目和答題選項輸入在幻燈片上,只是將答案用不同的顏色表示,忽視了習題的交互性.另外,有些教師為了加上一些交互效果,大多采用自定義動畫和觸發器的方法來實現習題的交互.這兩種方式,雖在一定程度上實現了交互,但對學生在課下自主學習的時候,就不能自主的按照認知規律進行相應的選擇或輸入相應的答案,交互效果不能起到很好的作用.在PowerPoint課件中,要制作具有交互性好的習題,可以利用Office自帶的VBA工具來實現.以單項選擇題為例,探討利用VBA工具和Access的相關技術,實現交互性更好、更符合學生自主選擇和認知規律的習題設計方法.
1.1 VBA簡介
VBA是Visual Basic for Application的縮寫,是微軟開發的一種應用程序共享的自動化編程語言,用于Office系列軟件功能的二次開發和擴展,被內置在Office系列軟件中.用戶利用VBA技術可以極大的增加Office系列軟件的交互性.它與VB的開發環境相似,不同之處是VB程序可以獨立運行,而VBA必須依賴于相應的應用程序[1].
1.2 VBA編程環境的進入
首先,啟動PowerPoint 2010,建立一張幻燈片,為了編輯的直觀性,可以將該幻燈片的版式設置為空白版式.
其次,將"開發工具"選項卡顯示出來,VBA的相關按鈕在"開發工具"選項卡中,而默認情況下,該選項卡是不顯示的.
顯示"開發工具"選項卡的方法:單擊PowerPoint2010"文件"菜單,選擇"選項"命令,在出現的對話框的左側列表中選擇"自定義功能區",在右側"主選項卡"中將"開發工具"前面的復選框選中,然后單擊"確定",即可在PowerPoint的選項卡中顯示"開發工具"選項卡.
最后,單擊"開發工具"選項卡,利用其相應功能區的相關按鈕即可進入VBA的編輯環境.
以單選題為例,闡述利用VBA實現題量少與多時,具有較好交互性的習題設計方法.
2.1 題量不多時的設計方法
如果制作的習題數量不多,可以利用VBA的相關控件直接將題目制作在幻燈片中.例如,實現如圖1所示的選擇題效果.

圖1 單選題效果圖
用戶可以根據自己的想法進行自主的選擇答案,想核對選擇的正確與否可以單擊"查看答案"按鈕,屏幕出現相應的答案,再在答案上單擊一下鼠標,答案隱藏起來.
具體實現步驟如下:
第一,在課件的某張幻燈片上輸入相應的標題和具體的題目.
第二,利用VBA控件中的單選按鈕制作答案選項,詳細設計為:選擇"開發工具"選項卡中"控件功能區"的"單選按鈕"控件,題目的下方制作單元按鈕.選中剛制作的單選按鈕控件,然后選擇"控件"功能區中的"屬性"按鈕,打開"屬性"窗口,設置該按鈕的"caption"屬性為相應的答案數據.按照類似的方法,制作其他選項的單選按鈕,并修改相應的屬性值.制作好4個單選按鈕后,按住Shift依此將這四個單選按鈕選中,利用"開始"選項卡的"繪圖"功能區的"排列"功能,設置其對齊方式,使界面更加美觀些.
第三,利用"控件"功能區的"命令按鈕"制作"查看答案"按鈕.在題目選項的下方制作命令按鈕,并設置屬性如圖2(左)所示.
第四,利用"控件"功能區的"標簽"控件,在"查看答案"按鈕的右側制作文字標簽控件,用來顯示參考答案.設置屬性值如圖2(右)所示.
第五,在幻燈片中雙擊"查看答案",進入其代碼編輯界面,輸入代碼: LabelDa.Caption="答案為:"+"A".雙擊"標簽"控件,進入其代碼編輯界面,輸入代碼:

圖2 "查看答案"按鈕的屬性值(左)和"標簽"的屬性值(右)
LabelDa.Caption="".
按照上面描述的方法,在幻燈片上制作其他的選擇題目即可.
2.2 題量較多時的設計方法
如果題目數量較多時,采用上述方法則工作量太大,制作過程比較麻煩.為解決此問題,可以將VBA技術和Access數據庫技術相結合,來制作題量大、交互性好且易于管理的習題.
2.2.1 VBA與Access數據庫的連接
VBA與數據庫的連接一般采用ADO方式,ADO是目前通用的數據庫訪問技術.在連接數據庫時要用到Connection、Recordset對象.
(1)Connection:建立應用程序與數據源的連接.只有連接成功后,Recordset對象才能訪問某個數據庫. (2)Recordset:執行數據訪問或SQL命令得到動態記錄集,它被緩存在內存中[2].
2.2.2 題量多時的設計方法
對于習題量大的情況,可以利用Access制作相應的習題庫.下面以單選題為例,來說明利用VBA和數據庫技術實現多題量的設計方法.
在幻燈片中單擊"單項選擇題練習"按鈕,進入如圖3(左)所示的做題歡迎界面.單擊"開始練習"按鈕,即可進入做題界面(圖3右)

圖3 習題初始界面(左)和做題界面(右)
開始做題時,"上一題"按鈕處于灰色不可用狀態,到最后一題時,"下一題"按鈕處于灰色不可用狀態,其他情況下均可用.做題過程中可以隨時通過單擊"結束"按鈕和"查看答案"按鈕結束做題或查看答案.
利用這種方法設計的習題,交互性比較好,學生可以自主的進行相應的選擇,更加符合學生的認知心理,且題庫管理也非常容易.
(1)制作習題庫
將題目信息利用Access軟件制作成題庫文件.本例中題庫文件名為xtk.mdb,保存在D盤的根目錄中.該數據庫中設計一張表xt用來存儲習題的具體信息,結構設計如圖4所示.習題庫中包含timu、dA、dB、dC、dD和answer六個字段,分別表示題目的描述、四個答案選項和參考答案.
(2)制作習題的布局界面
1)制作歡迎界面

圖4 習題庫信息
在PPT編輯環境中,選擇"開發工具"選項卡中的"代碼"功能區中的"Visual Basic"按鈕,進入VBA的編程環境.在編程環境中,選擇"插入"菜單中的"用戶窗體"命令,則在VBA的編輯環境中插入一個窗體UserForm1.選中該窗體,選擇常用工具欄中的"屬性窗口"按鈕,將其"名稱"屬性設置為XY,"caption"屬性設置為空,其他默認.
選擇常用工具欄中的"工具箱"按鈕,在窗體XY中制作一個文字標簽控件和一個按鈕控件,分別設置這兩個控件的屬性.
2)制作習題界面
利用(1)中介紹的方法,制作習題窗體,設置"名稱"屬性為UserFormXZT,"Caption"屬性為"單項選擇題".
在窗體UserFormXZT中插入1個標簽控件(其"名稱"屬性設置為LabelTM,"Caption"屬性為空)用來顯示題目描述,4個單選按鈕控件和相應的四個文字標簽控件(單選按鈕控件"Caption"屬性設置為空,其他默認,文字標簽控件屬性的名稱分別設置為LabelDaA、LabelDaB、LabelDaC、LabelDaD,"Caption"屬性均為空)用來顯示答題信息,4個命令按鈕用來制作"查看答案"、"上一題"、"下一題"和"結束"按鈕,"查看答案"按鈕右側插入1個文字標簽控件,用來顯示具體的答案.這4個按鈕及標簽控件的的"名稱"屬性分別設置為ButtonCKDA、ButtonSYT、ButtonXYT、ButtonJS和LabelCKDA,"Caption"屬性分別設置為"查看答案"、"上一題"、"下一題"、"結束"和"空".將相應的控件按照效果圖進行排列,布局好其相應位置.
3)利用VBA實現各控件相應的功能
要實現VBA與Access題庫的連接,在打開Visual Basic編輯器上,執行"工具"菜單項下的"引用"命令,激活"引用"對話框,從打開的"引用"列表中選擇"Microsoft ActiveX Data Objects 2.8 Library"一項,然后單擊"確定"按鈕,把它引用到PowerPoint幻燈片中[3].
在VBA開發環境的左側,雙擊XY窗體,打開其對象編輯窗口,再雙擊"開始練習"按鈕,進入代碼編輯窗口,輸入代碼:
XY.Hide
UserFormXZT.Show.
雙擊UserFormXZT窗體,選擇"視圖"菜單中的"代碼窗口"切換到該窗體的代碼編輯界面.
在該界面的最前面,設置變量:
Dim sn As ADODB.Recordset
Dim cn As ADODB.Connection
Dim rownum As Integer,CurrentRow As Integer,CurrentNum As Integer
Dim XT_Array(100,5)As String.
在窗體UserFormXZT的Initialize過程中輸入代碼:
ButtonST.Enabled=False
Dim constring As String
Set sn=New ADODB.Recordset
Set cn=New ADODB.Connection
constring="provider=microsoft.jet.OLEDB.4.0;"&"data source="&"d:xtk.mdb"
cn.Open constring
sn.Open"xt",cn,adOpenStatic
CurrentRow=1
With sn
DoWhile Not.EOF
XT_Array(CurrentRow,0)=sn.Fields(0)
XT_Array(CurrentRow,1)=sn.Fields(1)
XT_Array(CurrentRow,2)=sn.Fields(2)
XT_Array(CurrentRow,3)=sn.Fields(3)
XT_Array(CurrentRow,4)=sn.Fields(4)
XT_Array(CurrentRow,5)=sn.Fields(5)
CurrentRow=CurrentRow+1
.MoveNext
Loop
rownum=CurrentRow-1
End With
CurrentNum=1
LabelTM.Caption=XT_Array(CurrentNum,0)
LabelDaA.Caption=XT_Array(CurrentNum,1)
LabelDaB.Caption=XT_Array(CurrentNum,2)
LabelDaC.Caption=XT_Array(CurrentNum,3)
LabelDaD.Caption=XT_Array(CurrentNum,4).
在"下一題"按鈕的代碼窗口中代碼:
Private Sub ButtonXT_Click()
LabelCKDA.Caption=""
ButtonST.Enabled=True
CurrentNum=CurrentNum+1
If CurrentNum=rownum Then ButtonXT.Enabled=False
…
End Sub.
"上一題"按鈕的代碼窗口中,代碼:
Private Sub ButtonST_Click()
LabelCKDA.Caption=""
ButtonXT.Enabled=True
CurrentNum=CurrentNum-1
If CurrentNum<=1 Then ButtonST.Enabled=False
…
End Sub.
其中"…"處的代碼同Initialize過程的最后5行.
在"結束"按鈕的代碼窗口中輸入代碼:
UserFormXZT.Hide.
"查看答案"按鈕的代碼窗口中輸入代碼
LabelCKDA.Caption="答案為:"+XT_Array(CurrentNum,5).
最后,在PowerPoint制作的課件幻燈片中制作一個"命令按鈕"控件,設置其名稱屬性為DXLX,caption屬性為"單項選擇題練習",其他屬性默認.雙擊該按鈕,在其代碼窗口中輸入代碼:
XY.Show.
注意:要在幻燈片中運行VBA開發的代碼,必須將PowerPoint文件保存為"啟用宏的演示文稿"類型.在放映幻燈片中,單擊"單項選擇題練習"按鈕即可進入相應的界面.
VBA是為Office設計的,作為Office軟件之一的PowerPoint,如果在使用PowerPoint制作課件時,如果能與VBA編程相結合[4],充分的利用VBA工具,可以使制作出的課件的交互功能得到大大的增強[5].文中介紹的利用VBA和數據庫技術針對題量多的情況下做的習題設計,具有易于管理、交互性好的特點,更加符合使用者的認知學習.
[1]郭紅.基于VBA技術的CAI課件制作[J].華北科技學院學報,2007,4(3):92-95.
[2]黨小云.于衛紅.VBA在多媒體課件中的應用[J].電腦編程技巧與維護,2012(2):130-132.
[3]顏清.PowerPoint課件中基于VBA的習題設計[J].計算機與現代化,2006(2):80-84
[4]李文江.VBA在PowerPoint課件中的應用[J].重慶文理學院學報:自然科學版,2006,5(1):27-29.
[5]程昌品.VBA在課件交互設計中的應用[J].電腦學習,2005(1):25-26.
On the design of interactive exercises based on VBA
TONGHai-yan1,LV Hong-shan2,QIN Chun-ying1,JIA Shuang1
(1.Physical and Chemical Department,Bozhou Teachers College;2.Electrical and Electronic Engineering Department,Bozhou Vocational and Technical College,Bozhou 236800,Anhui,China)
At present,most courseware producers use the custom animation and flips flops,but few people use the VBA controls,to carry out active exercises.VBA as the two developments and expansion tool of office series software can play a good supporting role in making courseware.As an example to the single item choice,the paper analyses the design method of interactive exercises in PowerPoint courseware,in the exercise of fewer and more cases,and points out how to use the VBA programming language and Access database technology tomake more interactive exercises in line with the cognitive laws,self-selection and interactive principles.
VBA programming;courseware;VB controls;Access database;cognition
TP311
:A
:1007-5348(2014)06-0024-06
(責任編輯:歐愷)
2014-04-27
2013安徽省高校省級優秀青年人才基金重點項目(2013SQRL127ZD);2013安徽省高等教育振興計劃項目(2013cgtg040).
仝海燕(1979-),女,安徽碭山人,亳州師范高等專科學校理化系講師,碩士,主要從事軟件測試、模式識別與智能系統的研究.