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

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

⑤雙擊“查看答案”按鈕,在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 = \"答錯(cuò)了,正確答案是: A、B、C \"\"\" MsgBox \"第2題\" second, vbOKOnly, \"查看答案\"。VbOKOnly表示在對話框上顯示“確認(rèn)”按鈕。Dim表示定義變量,變量為first,VbOKOnly表示在對話框上顯示“確認(rèn)”按鈕,MsgBox是一個(gè)API函數(shù),功能是彈出一個(gè)對話框。完成后的界面如圖2所示。答錯(cuò)后的截圖如圖3所示。
4.3 Flash課件的制作在日常的課程教學(xué)過程中,常常需要涉及音頻教學(xué)(比如英語聽力),上述的技術(shù)則不能滿足要求。本文介紹一下如何在PowerPoint課件中實(shí)現(xiàn)播放Flash,在此課件中,可以播放、暫停、快進(jìn)、快退等。

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