PowerPoint怎樣用VBA?

一般來說,大部分同學都是從Execl開始學習VBA的,所以經常有同學詢問:「楊老師,請問ppt中也能使用vba么?該怎樣學習?」

其實word/ppt中的VBA與Excel中大同小異,只是類似「workbook」 、 「worksheet」 和 「Range」 等對象不同,另外沒有工作表公式等Excel獨有的功能。不過編程思路是一樣的,可以說學懂了Excel VBA之後,一邊看著手冊一邊就能寫出其他軟體中的VBA。

說到這裡,我倒是想起了幾年前遇到的一件小事,正好可以給這個答案做一個形象的演示,讓大家看一下PPT中的VBA與Excel有什麼異同。當時正逢上海世博會,於是一大批來自歐洲的留學生申請交換到我們這裡上半年課。學校分配給楊老師的任務是主講《E-Commerce in China》這門課程(課名翻譯:歡迎你們長大有錢後來中國花花花),於是我與其他幾位老師合寫了一套PowerPoint課件。

不過不同國家的學生學習習慣大有不同。給國內同學上課時,我從來都是課前只布置參考資料閱讀任務,課件要等到講完一節後再與隨堂練習題一併發給大家。而國外的同學都是要在第一堂課之前,就把所有各節課程的PPT全都下載,再自己安排預習。所以上完第一節課之後,同學們一致要求我馬上把全部課件發給大家,我也只好照顧大家的習慣。

那麼問題來了,因為PPT是多人合作,所以每個人都在各自負責的頁面下做了很多備註,以避免別人講課時發生誤解。現在如果要把PPT發給學生,當然還是先把這些備註全部刪除比較好。

雖然PPT提供了這樣的功能,不過我們的課件有幾十個PPT(每個PPT幾十頁),楊老師實在不願意把每個文件都打開操作一遍,更何況稍有疏忽就會遺漏某個PPT。於是很自然地,VBA又出場了。下面就是從一個PPT中刪除所有幻燈片備註的代碼(因為只是給大家演示一下異同,所以我把原來的代碼簡化了很多,並刪除了一些防止出錯的代碼):

首先大家可以看到,PPT的VBE與Excel VBE完全相同,都是我們最熟悉的三欄式編程界面,標準代碼也寫在「模塊」之中,宏的格式也是「Sub - End Sub」,遍歷每一個頁面同樣也使用 For Each in 循環(就像Excel遍歷每一個工作表一樣)。可以說,除了對象名稱不一樣,其他什麼都相同!我給大家做一個映射大家就能想通:

Workbook (工作簿文件) <=====> Presentation (幻燈片文件)

Worksheet (工作表) <=====> Slide (一頁幻燈片)

ActiveWorksheet (活動工作表) <=> ActivePresentation (活動幻燈片)

Worksheets (工作表集合) <====> Slides (幻燈片集合)

這個映射關係非常簡單也非常清晰,相信大家一定能夠理解。至於NotesPage等等,就像Excel中Worksheet的Range屬性一樣,只要查一查手冊就能想通。而Delete方法,自然就是讓某個對象自己執行刪除方法(自行了斷)了。

說到這裡,大家再回頭看一下我前面給那位同學做的解答,應該就能理解為什麼我說「會了Excel VBA,自然就會了其他VBA」了吧。

最後再感慨一下各國學生習慣不同這個問題,那一個學期大家相處的都很愉快,期末時每個外國同學都做了一個不錯的研究報告(記得有幾個法國同學研究婚戀網站,我給她們翻譯了一下午「百合網」、「世紀佳緣」,她們看到篩選條件裡面居然有「收入」、「戶口」,眼睛都要掉出來了)。沒想到最後評分時,我不自主的按80分就算良好的習慣給了分數,結果招來了一片痛哭流涕的申訴,所有人都說自己從小就幾乎沒得過這麼低的成績,玻璃心碎了滿地,弄得我也只好向學校請示是否需要按對方學校標準去改成績。

推薦閱讀:

【PPT檔案館09期】聯繫方式頁怎麼做
如何評價許岑?
色塊在PPT中的8種用法
如何形成自己強烈的PPT風格?
轟炸地球 | 每天1小時,30天如何成為1/10000的PPT大神?

TAG:VBA | PPT | MicrosoftExcel |