程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi與Word間的融合技術(2)

Delphi與Word間的融合技術(2)

編輯:Delphi

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);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved