【摘要】為適應多媒體教學的要求,利用PowerPoint中的繪圖功能、ActiveX控件功能和VBA編程,在課件中實現化工實驗過程的動畫模擬。基于VBA的動畫模擬課件生動、直觀、交互性強,為化工實驗模擬課件的開發提供了一種新的方法。
【關鍵詞】VBA;動畫模擬課件;設計;實現
【中圖分類號】G40-057 【文獻標識碼】B 【論文編號】1009—8097(2010)01—0124—03
引言
PowerPoint課件常用于教學、會議、產品演示等活動中,PowerPoint課件由于制作方便、快捷,深受廣大用戶喜愛,是最為流行的課件制作工具[1-2]。但絕大多數由PowerPoint制作的課件交互功能差、動畫簡單、形式呆板,成了名符其實的幻燈片,尤其是交互性強的動畫模擬課件較為鮮見。其實,PowerPoint中的繪圖功能、ActiveX控件功能及VBA編程功能[3]被大多數用戶所忽視,導致課件的運行效果和適用范圍受到限制。筆者用PowerPoint開發化工實驗課件時,對PowerPoint中各種功能及VBA二次開發技術[4-6]進行研究,在課件中實現了化工實驗過程的動畫模擬。在實驗模擬中通過控制部件的操作,運動部件同時產生形態變化,儀表部件動態顯示實驗數據,生動直觀,極大地豐富了PowerPoint課件的內涵。以下筆者對基于VBA的動畫模擬課件的實現過程和方法進行闡述,以饗讀者。
一 PowerPoint課件中簡單的運動動畫或動態模擬
在PowerPoint中,制作鋼球的平拋運動是簡單的運動動畫或動態模擬畫面,其最為普通的方法是采用“自定義動畫……”方法。如用繪圖工具制作一個球體(按住“Shift”鍵用“橢圓”工具畫一個正圓,選擇單色、中心輻射漸變的“填充效果”),右鍵選擇球體后執行“自定義動畫…”命令,在打開的“自定義動畫”窗口中單擊“添加效果”按鈕中的“動作路徑(P)”/“其他動作路徑(M)…”命令,在打開的“添加動作路徑”窗口中選擇“向下轉”路徑,添加路徑后進行編輯,使球體運動軌跡接近實際(圖1),這一方法難以達到理想的動態模擬效果,最為明顯的缺點是難以控制,交互性很不理想。但在PowerPoint課件中利用VBA技術,編程計算鋼球的運動軌跡可獲得逼真的動態仿真效果,還可以通過人機對話,輸入水平運動速度,顯示水平距離等。如在幻燈片上添加一個按鈕,并在按鈕的Click()過程中輸入以下VBA代碼即可實現鋼球運動的動態模擬效果:

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'放棄控制權
End With
Next i
二 VBA所控制的ActiveX控件,在動畫模擬課件中擔當重要角色
ActiveX控件是由不同語言開發、能被大多數應用程序使用的組件對象模型(COM),在對話框窗體中添加ActiveX控件是較為常用的方法,這一組件技術與VBA混合編程,極大地提升了PowerPoint課件交互功能。在PowerPoint文檔中,可以直接添加諸如“數值調節鈕”、“切換按鈕”和“選項按鈕”等ActiveX控件構建虛擬實驗裝置中的某些控制部件,再用一小段VBA代碼實現這些控制部件的開、關、調節等功能。如虛擬實驗裝置中的出口閥調節流量由“數值調節鈕”窗體來構建,即通過“視圖/工具欄/窗體”打開“窗體工具欄”選擇“數值調節鈕”ActiveX控件進行設置。再右鍵單擊控件,選擇右鍵菜單的“屬性(I)”命令打開“屬性”對話框(圖2)設置出口閥的開度,即最小值為0、最大值為10,共11個開度,0為關閉;執行右鍵菜單的“查看代碼”命令,輸入一段VBA代碼,即可通過出口閥開度值的大小,調節流量計轉子(\"Group 10\")的上下位置,“數值調節鈕”ActiveX控件的Change()過程VBA代碼如下:
x = SpButCKF.Value'“數值調節鈕”調節的值
If x >> y Then z = -1 Else z = 1
ActivePresentation.Slides(1).Shapes(\"Group 10\").IncrementTop z * 10“Group 10”為流量計的轉子,z為-1時向上,z為1時向下
DoEvents'放棄控制權
y = x 'y為公共變量

三 VBA主導圖形的運動,在動畫模擬課件中模擬運動部件或顯示動態數據
用繪圖工具可以繪制虛擬實驗裝置的靜態部件如泵體、水槽等。結合VBA編程,用繪制的圖形表示數字儀表的顯示屏的動態數字顯示,或表示動態變化的U型管液位、葉輪等運動部件,從而獲得動畫模擬的動態效果。如圖2所示,用圓和直線組合所表示的離心泵葉輪,啟動電機后隨之旋轉;用繪制的矩形表示數字儀表的顯示屏,顯示動態實驗數據;用直線線段或矩形表示U型管中液位,與控制部件完成動態響應,實現液面隨控制部件的調節發生動態變化等等,這些由VBA主導完成的動畫模擬都是化工實驗模擬課件中不可或缺的表現手段。在圖3中,出口閥調節流量時,作為顯示渦輪流量計流量顯示屏的矩形(“Rectangle 51”)中顯示流量的動態數據變化,連接孔板流量計的U型管壓差計,用作液柱的矩形(“Rectangle 21”和“Rectangle 22”)左高右低在變化,這些虛擬實驗裝置中動畫模擬效果都由VBA進行控制。出口閥由“數值調節鈕”控件表示,出口閥的調節引起U型管壓差計內液柱的變化,控件Change()過程的VBA代碼如下:
x = SpbutBCKF.Value'“數值調節鈕”調節的值
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”為渦輪流量計的數字顯示屏,Str$(xx)為轉換函數
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插入文本,在動畫模擬課件中實現人機交互
對于實驗時沒有按實驗操作步驟和實驗方法進行的操作為誤操作。利用VBA插入文本的方法顯示操作提示進行人機對話,及時糾正誤操作。學生通過實驗模擬課件熟悉實驗操作、掌握實驗方法,完成實驗預習。如在圖1中,對未啟動電機就調節出口閥這一誤操作,需要有“請先啟動電機!”的提示,利用VBA插入文本方法完成這一人機交互。具體方法如下,先在出口閥旁添加一個空白“文本框”,然后分別在“啟動電機”按鈕的Click()過程和作出口閥的“數值調節鈕”控件的Change()過程中加入VBA代碼完成交互。“啟動電機”按鈕的Click()過程中的VBA代碼為:
KS = 1: ActivePresentation.Slides(1).Shapes(\"Text Box 63\").TextFrame.TextRange.Text = \"\" ' KS為公共變量,啟動為1
作出口閥的“數值調節鈕”控件的Change()過程中的VBA代碼為:
If KS <>> 1 Then ActivePresentation.Slides(1).Shapes(\"Text Box 63\").TextFrame.TextRange.Text = \"請先啟動電機!\": End '如果KS不為1,電機未啟動,“Text Box 63”為出口閥旁添加的空白“文本框”,顯示“請先啟動電機”
五 結束語
VBA與PowerPoint的繪圖功能、ActiveX控件功能進行混合編程,使實驗動畫模擬課件具有動態效果逼真、交互性好等特點,克服了PowerPoint的許多不足,極大地提升了PowerPoint的交互功能和多媒體課件的開發能力,使PowerPoint實驗仿真教學課件大為增色。PowerPoint是Office中的一員,創建實驗模擬課件與Office中其他成員的數據通訊有得天獨厚的條件。諸如課件與Access數據庫的連接用于保存模擬實驗數據,課件與Excel電子表格的數據交換用于處理模擬實驗數據等,這些實驗模擬課件的重要功能均可在Office平臺下得以實現,為開發化工實驗模擬課件提供了新的解決方案。
參考文獻
[1] 申小春,黃立冬.談FLV 流媒體視頻在PowerPoint中應用的幾種方法[J].北京:現代教育技術,2008,18(8):105-106.
[2] 李華侃,趙延清,賈云宏.利用VBA優化PowerPoint化學反應速率和化學平衡實驗[J].數理醫藥學雜志,2007,20(3):388-390.
[3] [美]David Boctor著,北京超品計算機有限責任公司譯.Microsoft Office 2000 VBA基礎[M].人民郵電出版社,2000:80.
[4] 彭小平,顏清.基于VBA的“自動出卷”嵌入式應用程序[J].華東交通大學學報,2004,24(4):68-71.
[5] 顏清,彭小平,冷明偉.VBA實現恒餾出液組成間歇精餾的計算機模擬[J].上海:計算機應用與軟件[J].2008,25(12): 88-90,102.
[6] 顏清,彭小平.恒餾出液組成間歇精餾回流比的控制與調節[J].北京:計算機與應用化學,2008,25(10):1248-1252.