【摘要】為適應多媒體教學的要求,利用PowerPoint中的繪圖功能、ActiveX控件功能和VBA編程,在課件中實現(xiàn)化工實驗過程的動畫模擬?;赩BA的動畫模擬課件生動、直觀、交互性強,為化工實驗模擬課件的開發(fā)提供了一種新的方法。
【關(guān)鍵詞】VBA;動畫模擬課件;設(shè)計;實現(xiàn)
【中圖分類號】G40-057 【文獻標識碼】B 【論文編號】1009—8097(2010)01—0124—03
引言
PowerPoint課件常用于教學、會議、產(chǎn)品演示等活動中,PowerPoint課件由于制作方便、快捷,深受廣大用戶喜愛,是最為流行的課件制作工具[1-2]。但絕大多數(shù)由PowerPoint制作的課件交互功能差、動畫簡單、形式呆板,成了名符其實的幻燈片,尤其是交互性強的動畫模擬課件較為鮮見。其實,PowerPoint中的繪圖功能、ActiveX控件功能及VBA編程功能[3]被大多數(shù)用戶所忽視,導致課件的運行效果和適用范圍受到限制。筆者用PowerPoint開發(fā)化工實驗課件時,對PowerPoint中各種功能及VBA二次開發(fā)技術(shù)[4-6]進行研究,在課件中實現(xiàn)了化工實驗過程的動畫模擬。在實驗模擬中通過控制部件的操作,運動部件同時產(chǎn)生形態(tài)變化,儀表部件動態(tài)顯示實驗數(shù)據(jù),生動直觀,極大地豐富了PowerPoint課件的內(nèi)涵。以下筆者對基于VBA的動畫模擬課件的實現(xiàn)過程和方法進行闡述,以饗讀者。
一 PowerPoint課件中簡單的運動動畫或動態(tài)模擬
在PowerPoint中,制作鋼球的平拋運動是簡單的運動動畫或動態(tài)模擬畫面,其最為普通的方法是采用“自定義動畫……”方法。如用繪圖工具制作一個球體(按住“Shift”鍵用“橢圓”工具畫一個正圓,選擇單色、中心輻射漸變的“填充效果”),右鍵選擇球體后執(zhí)行“自定義動畫…”命令,在打開的“自定義動畫”窗口中單擊“添加效果”按鈕中的“動作路徑(P)”/“其他動作路徑(M)…”命令,在打開的“添加動作路徑”窗口中選擇“向下轉(zhuǎn)”路徑,添加路徑后進行編輯,使球體運動軌跡接近實際(圖1),這一方法難以達到理想的動態(tài)模擬效果,最為明顯的缺點是難以控制,交互性很不理想。但在PowerPoint課件中利用VBA技術(shù),編程計算鋼球的運動軌跡可獲得逼真的動態(tài)仿真效果,還可以通過人機對話,輸入水平運動速度,顯示水平距離等。如在幻燈片上添加一個按鈕,并在按鈕的Click()過程中輸入以下VBA代碼即可實現(xiàn)鋼球運動的動態(tài)模擬效果:
v = 15: g = 9.81 'v為水平速度,g為重力加速度
For i = 1 To 20
With ActivePresentation.Slides(1).Shapes(\"Oval 3\") '“Oval 3”為鋼球
.IncrementLeft i * v / 6 '鋼球向右運動速度
.IncrementTop i * i * g / 2 / 36 '鋼球向下運動速度
DoEvents'放棄控制權(quán)
End With
Next i
二 VBA所控制的ActiveX控件,在動畫模擬課件中擔當重要角色
ActiveX控件是由不同語言開發(fā)、能被大多數(shù)應用程序使用的組件對象模型(COM),在對話框窗體中添加ActiveX控件是較為常用的方法,這一組件技術(shù)與VBA混合編程,極大地提升了PowerPoint課件交互功能。在PowerPoint文檔中,可以直接添加諸如“數(shù)值調(diào)節(jié)鈕”、“切換按鈕”和“選項按鈕”等ActiveX控件構(gòu)建虛擬實驗裝置中的某些控制部件,再用一小段VBA代碼實現(xiàn)這些控制部件的開、關(guān)、調(diào)節(jié)等功能。如虛擬實驗裝置中的出口閥調(diào)節(jié)流量由“數(shù)值調(diào)節(jié)鈕”窗體來構(gòu)建,即通過“視圖/工具欄/窗體”打開“窗體工具欄”選擇“數(shù)值調(diào)節(jié)鈕”ActiveX控件進行設(shè)置。再右鍵單擊控件,選擇右鍵菜單的“屬性(I)”命令打開“屬性”對話框(圖2)設(shè)置出口閥的開度,即最小值為0、最大值為10,共11個開度,0為關(guān)閉;執(zhí)行右鍵菜單的“查看代碼”命令,輸入一段VBA代碼,即可通過出口閥開度值的大小,調(diào)節(jié)流量計轉(zhuǎn)子(\"Group 10\")的上下位置,“數(shù)值調(diào)節(jié)鈕”ActiveX控件的Change()過程VBA代碼如下:
x = SpButCKF.Value'“數(shù)值調(diào)節(jié)鈕”調(diào)節(jié)的值
If x >> y Then z = -1 Else z = 1
ActivePresentation.Slides(1).Shapes(\"Group 10\").IncrementTop z * 10“Group 10”為流量計的轉(zhuǎn)子,z為-1時向上,z為1時向下
DoEvents'放棄控制權(quán)
y = x 'y為公共變量
三 VBA主導圖形的運動,在動畫模擬課件中模擬運動部件或顯示動態(tài)數(shù)據(jù)
用繪圖工具可以繪制虛擬實驗裝置的靜態(tài)部件如泵體、水槽等。結(jié)合VBA編程,用繪制的圖形表示數(shù)字儀表的顯示屏的動態(tài)數(shù)字顯示,或表示動態(tài)變化的U型管液位、葉輪等運動部件,從而獲得動畫模擬的動態(tài)效果。如圖2所示,用圓和直線組合所表示的離心泵葉輪,啟動電機后隨之旋轉(zhuǎn);用繪制的矩形表示數(shù)字儀表的顯示屏,顯示動態(tài)實驗數(shù)據(jù);用直線線段或矩形表示U型管中液位,與控制部件完成動態(tài)響應,實現(xiàn)液面隨控制部件的調(diào)節(jié)發(fā)生動態(tài)變化等等,這些由VBA主導完成的動畫模擬都是化工實驗模擬課件中不可或缺的表現(xiàn)手段。在圖3中,出口閥調(diào)節(jié)流量時,作為顯示渦輪流量計流量顯示屏的矩形(“Rectangle 51”)中顯示流量的動態(tài)數(shù)據(jù)變化,連接孔板流量計的U型管壓差計,用作液柱的矩形(“Rectangle 21”和“Rectangle 22”)左高右低在變化,這些虛擬實驗裝置中動畫模擬效果都由VBA進行控制。出口閥由“數(shù)值調(diào)節(jié)鈕”控件表示,出口閥的調(diào)節(jié)引起U型管壓差計內(nèi)液柱的變化,控件Change()過程的VBA代碼如下:
x = SpbutBCKF.Value'“數(shù)值調(diào)節(jié)鈕”調(diào)節(jié)的值
If x >> y Then z = 1 Else z = -1
xx = xx + z * 0.252'xx為公共變量
ActivePresentation.Slides(1).Shapes(\"Rectangle 51\").TextFrame.TextRange.Text = Str$(xx) \"L/s\": DoEvents'其中“Rectangle 51”為渦輪流量計的數(shù)字顯示屏,Str$(xx)為轉(zhuǎn)換函數(shù)
ActivePresentation.Slides(1).Shapes(\"Rectangle 21\").Height=120+10*z'“Rectangle 21”為U型管的左端液柱
ActivePresentation.Slides(1).Shapes(\"Rectangle 22\").Height=120-10*z'“Rectangle 22”為U型管的右端液柱
y = x ' y為公共變量
四 VBA插入文本,在動畫模擬課件中實現(xiàn)人機交互
對于實驗時沒有按實驗操作步驟和實驗方法進行的操作為誤操作。利用VBA插入文本的方法顯示操作提示進行人機對話,及時糾正誤操作。學生通過實驗模擬課件熟悉實驗操作、掌握實驗方法,完成實驗預習。如在圖1中,對未啟動電機就調(diào)節(jié)出口閥這一誤操作,需要有“請先啟動電機!”的提示,利用VBA插入文本方法完成這一人機交互。具體方法如下,先在出口閥旁添加一個空白“文本框”,然后分別在“啟動電機”按鈕的Click()過程和作出口閥的“數(shù)值調(diào)節(jié)鈕”控件的Change()過程中加入VBA代碼完成交互。“啟動電機”按鈕的Click()過程中的VBA代碼為:
KS = 1: ActivePresentation.Slides(1).Shapes(\"Text Box 63\").TextFrame.TextRange.Text = \"\" ' KS為公共變量,啟動為1
作出口閥的“數(shù)值調(diào)節(jié)鈕”控件的Change()過程中的VBA代碼為:
If KS <>> 1 Then ActivePresentation.Slides(1).Shapes(\"Text Box 63\").TextFrame.TextRange.Text = \"請先啟動電機!\": End '如果KS不為1,電機未啟動,“Text Box 63”為出口閥旁添加的空白“文本框”,顯示“請先啟動電機”
五 結(jié)束語
VBA與PowerPoint的繪圖功能、ActiveX控件功能進行混合編程,使實驗動畫模擬課件具有動態(tài)效果逼真、交互性好等特點,克服了PowerPoint的許多不足,極大地提升了PowerPoint的交互功能和多媒體課件的開發(fā)能力,使PowerPoint實驗仿真教學課件大為增色。PowerPoint是Office中的一員,創(chuàng)建實驗模擬課件與Office中其他成員的數(shù)據(jù)通訊有得天獨厚的條件。諸如課件與Access數(shù)據(jù)庫的連接用于保存模擬實驗數(shù)據(jù),課件與Excel電子表格的數(shù)據(jù)交換用于處理模擬實驗數(shù)據(jù)等,這些實驗模擬課件的重要功能均可在Office平臺下得以實現(xiàn),為開發(fā)化工實驗模擬課件提供了新的解決方案。
參考文獻
[1] 申小春,黃立冬.談FLV 流媒體視頻在PowerPoint中應用的幾種方法[J].北京:現(xiàn)代教育技術(shù),2008,18(8):105-106.
[2] 李華侃,趙延清,賈云宏.利用VBA優(yōu)化PowerPoint化學反應速率和化學平衡實驗[J].數(shù)理醫(yī)藥學雜志,2007,20(3):388-390.
[3] [美]David Boctor著,北京超品計算機有限責任公司譯.Microsoft Office 2000 VBA基礎(chǔ)[M].人民郵電出版社,2000:80.
[4] 彭小平,顏清.基于VBA的“自動出卷”嵌入式應用程序[J].華東交通大學學報,2004,24(4):68-71.
[5] 顏清,彭小平,冷明偉.VBA實現(xiàn)恒餾出液組成間歇精餾的計算機模擬[J].上海:計算機應用與軟件[J].2008,25(12): 88-90,102.
[6] 顏清,彭小平.恒餾出液組成間歇精餾回流比的控制與調(diào)節(jié)[J].北京:計算機與應用化學,2008,25(10):1248-1252.