程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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