Office Space:撰寫 Microsoft Office 應用程式指令碼的秘訣
歡迎蒞臨 Office Space 專欄,這裡提供處理 Microsoft® Office 應用程式指令碼的秘訣。每週二和週四我們將刊出新的秘訣,若要參閱以前討論過的秘訣,請造訪 Office Space Archive (Office Space 過往文件)。您有關於系統管理指令碼方面的問題嗎?請將電子郵件傳送到 scripter@microsoft.com。我們無法保證能夠逐一回答每個問題,不過我們會盡力而為。
將文字附加至 Microsoft Word 文件
不久前我們刊出一篇 Office Space 專欄,說明如何將資料附加至 Microsoft Excel 試算表。結果讀者反應非常熱烈:
「請問要怎樣把文字附加至 Microsoft Word 文件?」
「您的文章讓我獲益匪淺,但我想知道怎樣把資料附加至 Word 文件結尾?」
「請問是否也能在 Word 文件執行類似的動作?」
「您好,我們並不相識,我是某某國前國防部長的遺孀,亡夫生前曾在某個秘密的銀行帳號存了五千萬美金。他的遺願是要我找出將文字附加至 Microsoft Word 文件的方法,拜託您幫忙了…」
看來有些讀者已經等不及了,很多人甚至恨不得可以追打出答案來,不用緊張,慢慢來。好,假設有一份像這樣的簡單 Word 文件:
我們需要一個可以打開這份文件並把資料附加至文件結尾的指令碼。世界上真的有這麼方便的指令碼嗎?沒錯,現在就有:
Const wdStory = 6
Const wdMove = 0
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Open("c:\scripts\testdoc.doc")
Set objSelection = objWord.Selection
objSelection.EndKey wdStory, wdMove
objSelection.TypeParagraph()
objSelection.TypeParagraph()
objSelection.TypeText "This text was appended to an existing Word document."
出乎想像的簡單,對吧?這份程式碼開頭先定義兩個常數:wdStory 和 wdMove。wdStory 告訴 Word 應該把選取點移到何處 (您想的沒錯,數值 6 表示「把選取點移到文章末端」,套 Word 的說法就是移到「文件結尾」)。wdMove 則告訴指令碼執行移動的動作。換句話說,要閃動的小游標從文件開頭這個預設位置跳到文件結尾。另一種方法是定義一個叫做 wdExtend 的常數,並將值設為 1。這樣就能把選取範圍擴大到文章從頭到尾,也就是選取整篇文件。
我猜一定會有人問,難道只能移到文章末端嗎?其實您還可以將選取範圍移動 (或延伸) 至文件內其他地方,不一定只能跳到文件結尾。例如:
常數 |
值 |
wdSentence |
3 |
wdParagraph |
4 |
wdLine |
5 |
wdStory |
6 |
如需詳細資訊,請參閱 MSDN 上的 Microsoft Word VBA Language Reference (英文)。
好啦,言歸正傳。定義兩個常數後,我們可以建立 Word.Application 物件的執行個體,接著將 Visible 屬性設定為 True (這樣就能在畫面上看見所有的東西)。使用 Open 方法開啟 C:\Scripts\Testdoc.doc 檔案,然後建立 Selection 物件的執行個體。根據預設,這樣就能把選取點放在文件的最前頭。
剛才說過,我們要把選取點移動到文件結尾 (因為要附加的文件一定會附加在選取點所在的位置)。這時可以利用 EndKey 方法 (用途正如其名),模擬鍵盤上 END 鍵的動作 。這行程式碼可以把選取點搬到文件結尾:
objSelection.EndKey wdStory, wdMove
就像您看到的,我們傳遞兩個參數給 EndKey:wdStory (告訴指令碼把選取點移到文件結尾) 和 wdMove (指明我們要移動選取點,而不是延伸選取範圍)。呼叫 EndKey 方法後,閃動游標就會從文件前端跳到末端。
注意:如果想模擬 HOME 鍵的的動作,該怎麼做?我想您已經猜到了。沒錯,就是使用 HomeKey 方法。 |
接下來的程式碼只是要示範我們確實移到文件結尾。使用 TypeParagraph() 方法,在文件中加上兩個復位換行 (以便區隔新舊文字),然後使用這行程式碼把文字附加到檔案中:
objSelection.TypeText "This text was appended to an existing Word document."
這樣就大功告成。Word 文件就會像下面一樣,新的文字附加在舊文字的後頭:
討論到此結束。您已經學會怎麼將文字附加至 Microsoft Word 文件。我們終於可以好好休息了。
「還沒完呢,請問怎麼把新的投影片附加至 PowerPoint 簡報…?」