摘要 VBA在PowerPoint課件制作中應用非常方便,其強大的編程能力讓課件的制作簡單快捷。通過一些實例來說明VBA編程語言在PowerPoint 2003課件中的制作方法,制作出來的PPT課件具有交互性和靈活性,并且使課程教學富有生動性和趣味性。
關鍵詞 VBA;PPT課件;交互性
中圖分類號 TP317 文獻標識碼 A 文章編號 1671-489X(2008)016-0140-03
學校多媒體計算機使用的普及使得教師的媒體教學越來越普遍,而PowerPoint就是一種使用最廣泛的教學多媒體工具。PPT[1]是制作和演示幻燈片的軟件,能夠制做出集文字、圖形、圖像、聲音以及視頻剪輯等多媒體元素于一體的演示文稿,深受老師們的喜愛。除了教學演示功能外,我們還可以利用VBA編程語言制作交互式測試題,或者實現更強大的課件制作功能。作為計算機專業人員要向廣大老師提供技術支持和幫助,使我們的課堂教學更加生動活潑。本文就列舉一些用VBA在PPT課件制作中的例子,來闡述如何在PPT課件中利用VBA來實現交互功能。
1 VBA簡介
VBA(Visual Basic for Applications)是由微軟開發的新一代標準宏語言,它是基于VB發展而來的,并采用與VB完全相同的編程環境,所以可以說它是VB (Visual Basic)語言的一個子集。VBA 作為一種新一代的標準宏語言[2],具有上述跨越多種應用軟件并且具有控制應用軟件對象的能力, 是Office平臺的共通語言,使得程序設計人員僅需學習一種統一的標準宏語言,就可以轉換到特定的應用軟件上去,程序設計人員在編程和調試代碼時所看到的是相同的用戶界面,而且VBA 與原應用軟件的宏語言相兼容。
VB和VBA的區別在于,VB是以介面為中心的開發方式,重點在使用者如何進行操作;而VBA 以文件為中心的開發方式,重點在使用者最后看到什么。
VBA可以用于Office的各種應用程序,比如Word、Excel以及PowerPoint。VBA有3個特點:1)VBA使得已有的應用程序自動化;2)VBA必須寄生于已有的應用程序;3)VBA開發的程序必須依賴于它的父應用程序(如PowerPoint等)。
2 用VBA制作課件的一般流程[3]

1)打開PowerPoint 2003,新建一個空白的幻燈片。
2)如圖1所示,選擇“視圖/工具欄/控件工具箱”,控件工具箱中提供了各種制作PPT課件的控件。
3)用鼠標單擊控件工具箱中的相應控件,然后用鼠標移動到幻燈片編輯區域。
4)按下鼠標的左鍵,并同時拖動鼠標,這樣就在PPT上畫出了一個控件。
5)選中控件,然后單擊控件工具箱中的屬性按鈕,現在就可以編輯該控件的屬性。
6)雙擊控件,添加代碼,完成相應功能。
3 控件工具箱主要控件及其屬性
1)復選框:可以選擇多個選項,常用來設計多選題;
2)文本框:可以輸入文本,常用來設計填空題;
3)命令按鈕:用來確定選擇或輸入,也可設計超鏈接;
4)選項按鈕:只能選中一個選項,常用來設計單選題或判斷題;
5)標簽:用來顯示文字信息,可用來輸入題目。
4 VBA制作PowerPoint實例
PowerPoint在office里充當媒體整合的角色,VBA就是將各種軟件進行結合的關鍵。
一個完整的教學課件,除了有豐富的教學內容之外,還應加入諸如課堂測試、習題等與教學相關的輔助內容。為了闡述VBA在PPT課件中是如何實現交互功能的,本文給出一些VBA技術在PowerPoint中應用的例子。
4.1 幻燈片的隨機切換有時候我們需要隨機跳轉到一個給定范圍內的幻燈片。在一個按鈕的宏內運行Slide Jump,隨機數生成的公式如(1):
Number =Int((最高上限-(最低下限-1))*rnd + 最低下限) (1)
Sub SlideJump()randomizeDim n As Integer
n = Int(8 * Rnd + 3)
ActivePresentation.SlideShowWindow.View.GotoSlide (n)End Sub
上面就是在幻燈片3~10之間隨機切換的代碼。
4.2 多選題的制作
1)首先在PowerPoint的插入菜單中選擇文本框,再選擇水平,這樣就在PPT上可以拖出一個類似于標簽功能的文本顯示框,在里面填入“1、這次受災的地區有哪些?”。
2)然后選擇“視圖/工具欄/控件工具箱”,調出控件工具箱,從中選出‘選項按鈕’控件,在PPT上拖出4個復選框控件,分別把其Caption屬性改為“A.汶川”“B.綿陽”“C.北川”和“D.北京”。這4個選項按鈕的默認“名稱”屬性為OptionButton1、OptionButton2、OptionButton3和OptionButton4。
3)同樣,再到控件工具箱中選中“命令按鈕”控件,拖出5個按鈕,這5個按鈕的“名稱”屬性默認為CommandButton1、CommandButton2、CommandButton3、CommandButton4和CommandButton5,把它們的Caption屬性分別改為上一題、下一題、退出、重新選擇和查看答案。
4)最后在PPT上雙擊各個按鈕完成其代碼功能。
①雙擊“上一題”按鈕,在Private Sub CommandButton1_Click()和End Sub之間寫入代碼With Slideshow Windows(1).View.Previous End With。Previews屬性表示翻轉到上一次。
②雙擊“下一題”按鈕,在Private Sub CommandButton2_Click()和End Sub之間寫入代碼With Slideshow Windows(1).View.Next End With。Next屬性表示翻轉到下一次。
③雙擊“退出”按鈕,在Private Sub CommandButton3_Click()和End Sub之間寫入代碼With Slideshow Windows(1).View.Exit End With。Exit屬性表示退出幻燈片。
④雙擊“重新選擇”按鈕,在Private Sub CommandButton4_Click()和End Sub之間寫入代碼OptionButton1.Value = False OptionButton2.Value = False OptionButton3.Value = False OptionButton4.Value = False。Value表示屬性的值,都設置為1表示清空以前的設置。

⑤雙擊“查看答案”按鈕,在Private Sub CommandButton5_Click()和End Sub之間寫入代碼Dim second If CheckBox1.Value = True And CheckBox2.Value = True And CheckBox3.Value = True And CheckBox4.Value = False Then second = \"答對了\" Else second = \"答錯了,正確答案是: A、B、C \"\"\" MsgBox \"第2題\" second, vbOKOnly, \"查看答案\"。VbOKOnly表示在對話框上顯示“確認”按鈕。Dim表示定義變量,變量為first,VbOKOnly表示在對話框上顯示“確認”按鈕,MsgBox是一個API函數,功能是彈出一個對話框。完成后的界面如圖2所示。答錯后的截圖如圖3所示。
4.3 Flash課件的制作在日常的課程教學過程中,常常需要涉及音頻教學(比如英語聽力),上述的技術則不能滿足要求。本文介紹一下如何在PowerPoint課件中實現播放Flash,在此課件中,可以播放、暫停、快進、快退等。

1)插入Flash音頻聽力。單擊“視圖/工具欄/控件工具箱”,選擇“其他控件/Shockwave Flash Object”,在幻燈片中用鼠標拖出一個方框,調整好大小,即在PowerPoint界面上插入一個Flash控件,如圖4和圖5所示。
選擇Flash控件,點擊鼠標右鍵選擇“屬性”命令,在Movie中填入所需的Flash影片名稱(單元一英語聽力),并把其“名稱”改為English Flash,如圖6所示。
2)插入命令按鈕。在“控件工具箱”中選擇“命令按鈕”,在幻燈片中拖動,即可拖出一個命令按鈕。調整好大小,在“屬性”面板中作如下設置:“名稱”中輸入play,Caption中輸入“播放”。按照同樣的方法,拖出“暫停”、“前進”、“后退”、“返回”和“結束”命令按鈕。其中,“暫停”按鈕的“名稱”改為pause, Caption改為“暫停”;“前進”按鈕的“名稱”改為“forward”, Caption改為“前進”;“后退”按鈕的“名稱”改為“back”, Caption改為“后退”;“返回”按鈕的“名稱”改為“comeback”, Caption改為“返回”;“結束”按鈕的“名稱”改為“termination”, Caption改為“結束”。 修改完畢后,開始編輯各個按鈕的代碼。
雙擊“播放”按鈕,進入VBA編輯窗口,輸入如下內容:
Private Sub play_Click()
EnglishFlash.Playing = True
End Sub
“暫?!卑粹o的代碼為:
Private Sub pause_Click()
EnglishFlash.Playing = False
End Sub
“前進”按鈕的代碼為:
Private Sub forward_Click()
EnglishFlash.FrameNum = EnglishFlash.FrameNum + 30
EnglishFlash.Playing = True
End Sub
“后退”按鈕的代碼為:
Private Sub back_Click()
EnglishFlash.FrameNum
EnglishFlash.FrameNum - 30
EnglishFlash.Playing = True
End Sub
“返回”按鈕的代碼為:
Private Sub comeback_Click()
EnglishFlash.FrameNum = 1
EnglishFlash.Playing = True
End Sub
“結束”按鈕的代碼為:
Private Sub termination_Click()
EnglishFlash.FrameNum= EnglishFlash.TotalFrames
End Sub
程序說明:Playing表示是否播放Flash,它是個離散值;FrameNum表示Flash當前幀的編號(從 0 開始計數 ),設置 該屬性值將使Flash停在由 FrameNum 指定的幀處;1表示從頭開始播放,TotalFrames表示結束,前進和后退按鈕通過加減FrameNum來控制Flash進度。要播放此Flash,需要將宏的“安全級”設為“低”(單擊“工具/宏/安全性”)。
5 結束語
本文介紹的只是VBA在PowerPoint中應用的一些基本功能,這些功能雖然簡單,但對教學工作有著很大的幫助。當然我們可以利用VBA編程語言來制作出更富有趣味性的課件,這就需要深入學習VBA編程技術。
參考文獻
[1]常征旗.PowerPoint制作課件的優勢和原則[J].考試周刊,2008(03)
[2]Lomax P.VB與VBA 技術手冊[M].劉海明,譯.北京:中國電力出版社,2002
[3]郭相坤,李一白,朱紹軍.基于VBA語言交互演示文稿的設計研究[J].辦公自動化,2007(02)