Word的宏的概述
Word充分地將文檔編輯和VB結合起來,真正地實現文檔的自動化。使用Word編程,類似於使用Visual Basic,所不同的是,在Word中,能夠直接運行某一個子程序,直接看見結果,Word的宏,
只能解釋運行,而Visual Basic,現在已經能夠編寫成真正的機器碼,從代碼的保護上來說,應該盡可能地減少Word的VBA代碼數量,尤其是關鍵的代碼。
VBA宏,可分成四種:
1、和命令名相同的宏
如FileSave,FileOpen,如果在VBA代碼中包含與Word同名的函數,則直接執行這些VBA代碼,忽略Word本身的命令。
2、Word內特定的宏
這些宏包含AutoExec(啟動 Word 或加載全局模板)、AutoNew(每次新建文檔時)、AutoOpen(每次打開已有文檔時)、AutoClose(每次關閉文檔時),AutoExit(退出 Word 或卸載全局模板時)。
如果VBA代碼中含有這些名稱的函數,則滿足相應的條件,相應代碼就自動執行。
3、相應事件的VBA宏
這些宏是由事件觸發的宏,如Document_Close在文檔關閉的時候觸發事件,Document_New在新建文檔的時候觸發,Document_Open在打開文檔的時候觸發。
4、獨立的宏
自己編寫的VBA代碼,即不屬於上面幾種情況的VBA代碼,可以被其他VBA代碼調用,更重要的是,可以被其他程序調用。
這樣,我們就可以屏棄Word自動執行的宏,通過Delphi直接調用相應宏來達到目的。
Word命令宏的詳細描述
Word本身的命令函數包含很多,但是無論是Word聯機幫助還是MSDN幫助,都沒有這方面的介紹,因此只能憑自己的實驗取探索,初步探測的函數如下:
宏名 解釋 FileNew 新建 FileNewDefault 新建空白文檔 FileSaveAs 另存為 FileOpen 打開 FileClose 關閉 FilePrint 打印 FilePrintPrevIEw 打印預覽 ToolsCustomize 工具欄裡面的自定義 ToolsOptions 工具選項 ToolsRevisions 突出顯示修訂 ToolsRevIEwRevisions 接受或拒絕修訂 ToolsRevisionMarksAccept 接受修訂 ToolsRevisionMarksReject 拒絕修訂 ToolsRevisionMarksToggle 修訂 ToolsMacro 宏 ToolsRecordMacroToggle 錄制新宏 VIEwSecurity 安全性 VIEwVBCode 查看VB編輯器環境 FileTemplates 模板和可加載項 ToolsProtectUnprotectDocument 解除對文檔的保護 InsertHyperlink 插入超級鏈接 EditHyperlink 編輯超級鏈接 DeleteHyperlink 刪除超級鏈接 EditLinks 查看、刪除鏈接 EditPasteAsHyperlink 粘貼超級鏈接 FormatStyle 樣式 EditBookMark 書簽下面舉例說明:
一、Delphi程序啟動Word
采用CreateOleObjects的方法來啟動Word,調用VBA代碼,具體實現過程為:
首先使用GetActiveOleObject('Word.Application')判斷當前內存中是否存在Word程序,如果存在,則直接連接,如果沒有Word程序,則使用CreateOleObject('Word.Application')啟動Word
二、Delphi程序新建Word文稿
格式:WordDocuments.Add(Template,NewTemplate,DocumentType,Visible)
Template: 使用模板的名稱,
NewTemplate: 新建文檔的類型,True表示為模板,False表示為文檔
DocumentType: 文檔類型,默認為空白文檔
Visible: 打撈的窗口是否可見
舉例:Doc_Handle:=Word_Ole.Documents.Add(Template:='C:\Temlate.dot',NewTemplate:=False);