一個非科班程式設計者的增益集開發心得(給初學者的建議)

一個非科班程式設計者的增益集開發心得

因為本身並沒有受過完整的資訊科學訓練,不敢在這個專業的社群部落格班門弄斧談程式設計的技術,不過因為唸研究所時教授指導的CAI研究主題,要找尋適合教師製作的輔助教學多媒體的工具與平台,讓我有機會接觸到Office增益集的設計。

因為本身是學化學的,並沒有資訊的背景,和指導教授深談過,要從零開始設計一個CAI軟體,在當時僅在學校使用過PE2與慧星一號的我,簡直是天方夜譚。所以教授希望我把研究的方向放在:尋找適合中小學教師製作的輔助教學多媒體的工具與平台,以此平台或工具設計一個範例。

在當時比較常聽到用在製作多媒體CAI的軟體是Macromedia 的 AUTHORWARE(後來被Adobe合併了),但是其學習的門檻與價格較高,中小學受限於經費與教師高授課時數,不利於在中小學推廣。所以教授希望我把目標鎖定在學校老師常用的軟體著手,看是否能利用學校所提供老師手邊常用的軟體做為設計CAI的軟體或平台,一方面避免經費的問題,另一方面希望降低老師學習的門檻,提高老師使用推廣的意願。

後來決定使用office 來做為CAI的製作工具,一方面當時office是學校老師普遍使用的軟體,二方面office 97已經提供相當不錯的多媒體整合功能,可以利用ActiveX控制項在OFFICE文件放入多媒體資料,另外office 97的VBA也提供設計互動性Office文件的可能性。

因為是留職停薪去唸研究所,有時間的壓力所以當決定以Office為平台之後,開始思考如何能快速完成教授交付的任務,經過一段時間的工作分析,先把CAI的腳本訂出來,針對腳本中可以使用Office來完成的文字與影像內容,實在無法完成的部分,再找尋其他工具,例如在CAI內容中我們要放入一個拍攝實驗影片的mpeg檔案,就利用當時還不是很普遍mpeg1影音壓縮卡,來剪輯壓縮V8所拍的影片,互動的部分我們使用VBA程式來完成,在這個過程中我學習到一些寶貴的VBA程式設計經驗。

在此與各位先進分享我的小小心得,首先Office的功能很豐富,有很多功能藏身於細節中,所以首要是把Office可以應用於我的CAI製作的功能找出來進行整合,VBA巨集成為整合這些功能很好的黏膠,透過VBA巨集程式的串聯可以使Office文件有系統的整合成一個連貫的電腦輔助教材。如先前所說:在此之前我從未接觸程式設計的東西,VBA對我來說一樣是具有難度,如何在很短時間完成教授指定的任務?當然找文獻是研究生必備的能力,就到幾個大的書店找看看有無相關的參考書籍,當時VBA程式設計相關的中文書籍並不多,找了許久找到一本洪士吉先生著作的EXCEL 97 VBA巨集程式範例。從中學習到VBA巨集程式的一些基本概念,也看到VBA程式的威力,也從中學到設計增益集的方法。

有網友問到如何才能學會增益集的設計?我有幾點個人的經驗與大家分享:

1.首先增益集是一種附加功能的外掛軟體,Addin是補原來軟體不足或不便之處,所以你必須先熟悉你要設計的增益集的容器軟體,舉例你要設計Excel的Addin(增益集),你一定要熟悉Excel的各項功能,如果你不熟悉Excel的功能與用途,除了你很難利用程式去控制Excel之外,再者你所開發的功能可能已經存在Excel中(虛工一場)。

2.要開發軟體當然至少要熟悉一種程式語言,那一種程式語言比較適合入門者來開發增益集?OFFICE支援COM的格式的增益集,所以很多程式語言都可以開發OFFICE增益集,但是根據我的經驗;初學者應該要從OFFICE本身的VBA開始,一方面是Office已經提供VBA的IDE,再者VBA的語法相對比較簡單,另外微軟附在OFFICE中的VBA文件說明相當完整。

在OFFICE的VBA IDE中,只要將程式碼中相要知道的語法、物件方法或物件屬性選取反白,按一下F1快速鍵,很快就可以查到相關的說明或範例。舉例我想知道Chdir這個陳述式的用法,只要將之反白選取,再按F1鍵即可快速找到參考。

image

image

有這樣的工具,你可以很快速去熟悉OFFICE的物件架構,因為不管用VB或C#開發OFFICE增益集其實都應用到OFFICE的物件,所以熟悉OFFICE的物件架構,才能讓您快速進入狀況。

3.另外建議初學者先不要從POWERPOINT開始,我建議先從WORD或EXCEL先下手,因為OFFICE2007中POWERPOINT沒有巨集錄製的功能。Word或Excel都有錄製巨集的功能,執行錄製巨集的功能,再操作Excel或Word,程式會自動建立相關動作指令的程式碼,可以讓我們比較快速了解程式執行指令與程式碼的關係,另外在VBA的IDE中進行單步除錯,也可以反向了解程式碼的功能。至於像Powerpoint沒有錄製巨集的功能,只能從Office的說明中,找到Powerpoint相關的物件、方法、屬性去試我們需要的功能指令。

 

imageimage

4.善用msdn所提供的範例,利用google輸入msdn office addin development這幾個關鍵字可以找到一堆相關的參考資料,透過微軟提供的範例,可以幫助初學者上手。

cool      歡迎引用,請注明來源出處!

作者:楊煥謀