OFFICE中的“宏”是什么意思?

熱心網友

Visual Basic for Applications(簡稱VBA)是新一代標準宏語言,是基于Visual Basic for Windows 發展而來的。它與傳統的宏語言不同,傳統的宏語言不具有高級語言的特征,沒有面向對象的程序設計概念和方法。而VBA 提供了面向對象的程序設計方法,提供了相當完整的程序設計語言。VBA 易于學習掌握,可以使用宏記錄器記錄用戶的各種操作并將其轉換為VBA 程序代碼。這樣用戶可以容易地將日常工作轉換為VBA 程序代碼,使工作自動化。因此,對于在工作中需要經常使用Office 套裝軟件的用戶,學用VBA 有助于使工作自動化,提高工作效率。另外,由于VBA 可以直接應用Office 套裝軟件的各項強大功能,所以對于程序設計人員的程序設計和開發更加方便快捷。11。1 VBA 基礎 Visual Basic 的應用程序版(VBA)是Microsoft 公司長期追求的目標,使可編程應用軟件得到完美的實現,它作為一種通用的宏語言可被所有的Microsoft 可編程應用軟件所共享。在沒有VBA 以前,一些應用軟件如Excel、Word、Access、Project 等都采用自己的宏語言供用戶開發使用,但每種宏語言都是獨立的,需要用戶專門去學習,它們之間互不兼容,使得應用軟件之間不能在程序上互聯。擁有一種可跨越多個應用軟件,使各應用軟件產品具有高效、靈活且一致性的開發工具是至關重要的。VBA 作為一種新一代的標準宏語言,具有上述跨越多種應用軟件并且具有控制應用軟件對象的能力,使得程序設計人員僅需學習一種統一的標準宏語言,就可以轉換到特定的應用軟件上去,程序設計人員在編程和調試代碼時所看到的是相同的用戶界面,而且VBA 與原應用軟件的宏語言相兼容,以保障用戶在代碼和工作上的投資。有了VBA 以后,多種應用程序共用一種宏語言,節省了程序人員的學習時間,提高了不同應用軟件間的相互開發和調用能力。 在Office 2000 中,宏語言VBA 適用于所有應用程序,包括Word 、 Excel、PowerPoint、Access、Outlook 以及Project。在Office 97 的各應用程序中,新增了Visual Basic 編輯器。這樣,用戶無論是在Excel 中,還是在Word 中以至是在Access 中建立和管理VBA 都具有統一的方法和標準。 在介紹如何利用VBA 提高工作效率之前,首先介紹一些與VBA 有關的基礎知識。11。1。1 VB 與VBA VBA 是基于Visual Basic 發展而來的,它們具有相似的語言結構。Visual Basic 是Microsoft 的主要圖形界面開發工具,VBA 5。0 (亦即VBA 97)則是Visual Basic 5。0 的子集。Visual Basic 是由Basic 發展而來的第四代語言。Visual Basic 作為一套獨立的 Windows 系統開發工具,可用于開發Windows 環境下的各類應用程序,是一種可視化的、面向對象的、采用事件驅動方式的結構化高級程序設計語言。它具有高效率、簡單易學及功能強大的特點。VB 的程序語言簡單、便捷,利用其事件驅動的編程機制,新穎易用的可視化設計工具,并使用Windows 應用程序接口(API)函數,采用動態鏈接庫(DLL)、動態數據交換(DDE)、對象的鏈接與嵌入(OLE)以及開放式數據庫訪問(ODBC)等技術,可以高效、快速地編制出 Windows 環境下功能強大、圖形界面豐富的應用軟件系統。 Visual Basic 程序很大一部分以可視(Visual)形式實現,這意味著在設計階段就可以看到程序運行的屏幕畫面,用戶可以在設計時能夠方便地改動畫面圖像、大小、顏色等,直到滿意為止。VB 的用戶可以是缺乏Windows 及C 語言開發經驗的專業軟件人員,也可以是具有一定Windows 開發經驗的專業人員,VB 的可視化編程方法使得原來繁瑣枯燥、令人生畏的Windows 應用程序設計變得輕松自如、妙趣橫生。以往的Windows 應用程序開發工具在設計圖形用戶界面時,都是采用編程的方法,并伴隨大量的計算任務,一個大型應用程序約有90%的程序代碼用來處理用戶界面,而且在程序設計過程中不能看到界面顯示的效果,只有在程序執行時才能觀察到,如果界面效果不佳,還需要回到程序中去修改。Visual Basic 提供了新穎的可視化設計工具,巧妙地將Windows 界面設計的復雜性封裝起來,程序開發人員不必再為界面設計而編寫大量程序代碼,僅需采用現有工具按設計者要求的布局,在屏幕上畫出所需界面,并為各圖形對象設置屬性即可,VB 自動產生界面設計代碼,這樣便將事先編制好的控件可視地連接到一起,構成一個隨時可調整的界面。 VBA 不但繼承了VB 的開發機制,而且VBA 還具有與VB 相似的語言結構,它們的集成開發環境IDE(Intergrated Development Environment)也幾乎相同。但是,經過優化,VBA 專門用于Office 的各應用程序。VB 可運行直接來自Windows 95 或NT 桌面上的應用程序,而VBA 的項目(Project)僅由使用VBA 的Excel、Word、 PowerPoint 等稱為宿主(Host)的Office 應用程序(Application)來調用。11。1。2 WordBasic 和 Visual Basic 在 Word 中,為完成具體的任務,所用的是WordBasic 命令。 WordBasic 是從VBA 擴展而來的一種專用于處理Word 自動功能的語言,下面介紹它們在概念上的區別和它們的宏的相互轉換。 WordBasic 和 Visual Basic 在概念上的區別 VBA 和WordBasic 之間主要的區別是 WordBasic 語言包含由大約 900 個命令組成的一張平面列表,而 Visual Basic 則包含了由對象組成的一個分層結構,每個對象都可提供一組特定方法和屬性(與 WordBasic 中的語句和函數相似)。大多數 WordBasic 命令在任何時候都可運行,而 Visual Basic 只在特定的時候提供有效對象的方法和屬性。注意: 本書提到的Visual Basic 如果不加特別說明,都是指Visual Basic For Applications。 對象是 Visual Basic 這一宏偉大廈的基石,在 Visual Basic 中進行的幾乎任何操作都與修改對象有關。Word 的任何元素(如文檔、段落、域、書簽等),都可以用 Visual Basic 中的對象來代表。與平面列表中的命令不同,部分對象只能通過其他對象才能加以訪問。例如,可以通過不同的對象(如 Style、Selection 和 Find 對象)來訪問 Font 對象。 應用加粗格式的編程任務就表明了兩種編程語言之間的區別。下面的 WordBasic 指令對所選內容應用加粗格式。 下面的示例是 Visual Basic 語句,也是對所選內容應用加粗格式。 Selection。Font。Bold = True Visual Basic 不包含 Bold 語句和函數,卻有一個名為 Bold 的屬性(屬性通常指一個對象的特性,例如大小、顏色,或者是否是加粗)。Bold 是 Font 對象的一個屬性。同樣地,Font 是返回一個 Font 對象的 Selection 對象的一個屬性。按照下面的對象結構,可以生成指令,以將加粗格式應用于所選內容。 Bold 屬性是一個 Boolean 類型、可讀寫的屬性。這意味著可以將 Bold 屬性設置為 True 或 False(真或假),也可返回當前值。下面 WordBasic 指令的返回值表明是否將加粗格式應用于所選內容。 x = Bold() 下面的示例是 Visual Basic 語句,返回所選內容的加粗格式的狀態。 x = Selection。Font。Bold 要在 Visual Basic 中執行一個任務,就需要確定合適的對象。例如,如果用戶想應用【字體】對話框中的字符格式,可使用 Font 對象。然后需要確定如何理順從 Application 對象到 Font 對象的 Word 對象結構,以找到包含需要修改的 Font 對象的對象。在確定了該對象的路徑之后(例如,Selection。Font),可使用 Visual Basic 編輯器中的【對象瀏覽器】、【幫助】或【自動列表成員】之類的功能來確定可將什么屬性和方法應用于該對象。 將 WordBasic 宏轉換為 Visual Basic 宏可使任務自動化,如果在 Word 中重復進行某項工作,可用宏使其自動執行。宏是將一系列的 Word 命令和指令組合在一起,形成一個命令,以實現任務執行的自動化。用戶可創建并執行一個宏,以替代人工進行一系列費時而重復的 Word 操作。事實上,它是一個自定義命令,用來完成所需任務。 宏的一些典型應用如:加速日常編輯和格式設置、組合多個命令、使對話框中的選項更易于訪問、使一系列復雜的任務自動執行等。 Word 提供了兩種創建宏的方法:宏錄制器和 Visual Basic 編輯器。宏錄制器可幫助用戶開始創建宏。Word 在 VBA 編程語言中把宏錄制為一系列的 Word 命令。可在 Visual Basic 編輯器中打開已錄制的宏,修改其中的指令。也可用 Visual Basic 編輯器創建包括 Visual Basic 指令的非常靈活和強有力的宏,這些指令無法采用錄制的方式。 當第一次進行下列任何操作時,Word 2000 將自動轉換 Word 6。x 或 Word 95 模板中的宏。 打開該模板。 基于該模板創建一篇新文檔。 使用【工具】菜單中的【模板】命令將模板附加給一篇文檔。在轉換宏時,在狀態欄會顯示一條信息。轉換結束后,必須保存模板,以保存轉換后的宏。如果不保存模板,那么下次使用該模板時,Word 會再次轉換這些宏。 宏里面的每個 WordBasic 語句和函數都轉換為相應的 WordBasic 方法。轉換過程將每個宏都轉換為 Visual Basic 模塊。如要查看轉換過的宏,可在【工具】菜單上將鼠標指向【宏】,并單擊【宏】命令。在【宏】對話框中的宏名稱顯示為 macroname。Main,其中 Main 指轉換宏中的主子程序(該子程序在以前版本的 Word 中以 Sub MAIN 開頭)。要編輯轉換過的宏,可選擇一個宏名,單擊【編輯】按鈕,就可在 Visual Basic 編輯器中顯示該 Visual Basic 模塊。Sub MAINFormatFont 。Name = "Arial", 。Points = 10Insert "Hello World"End Sub 當該模板在 Word 2000 中打開時,該宏轉換為下列代碼。 Public Sub Main()WordBasic。FormatFont Font:="Arial", Points:=10WordBasic。Insert "Hello World"End Sub 轉換過的宏中的每個語句以 WordBasic 屬性(WordBasic 屬性返回一個自動化對象【Word。Basic】,該對象包含了在 Word 6。0 和 Word for Windows 95 中所有可用的 WordBasic 語句和函數的方法)開頭。WordBasic 是 Word 2000 對象模型中的一個屬性,該模型返回一個對象及所有的 WordBasic 語句和函數;該對象使得在 Word 2000 中運行 WordBasic 宏成為可能。注意: 如果在保存該模板時覆蓋原來的模板,則該 WordBasic 宏會永久地丟失,并且以前版本的 Word 也不能使用轉換過的宏。 Word 97 中的宏在Word 2000 中像在Word 97 中一樣使用而無需轉換。 下面的 Visual Basic 宏與以前的 WordBasic 宏的功能相同,但是沒有使用 WordBasic 屬性。Public Sub Main() With Selection。Font 。Name = "Arial" 。Size = 10 End With Selection。TypeText Text:="Hello World" End Sub 下面的示例是用 Word。Basic 對象新建一篇文檔,然后插入有效字體的名稱。每個字體名稱以與之相應的字體顯示。如:“楷體,隸書、宋體”。With WordBasic。FileNewDefaultFor aCount = 1 To 。CountFonts()。Font 。[Font$](aCount)。Insert 。[Font$](aCount)。InsertParaNextEnd With11。1。3 對象、屬性和方法 Word 對象 VBA 與傳統宏語言的重要區別之一就在于它是面向對象的。對象是為了在VBA 程序中管理數據和代碼的方便提出來的。在VBA 中,對象是封裝有數據和代碼的客體。例如,UserForm 對象是一個窗口或對話框,用以構成應用的用戶界面部分。 Word 對象是VBA 為Word 編程所采取的看待世界的方法。對象代表一個Word 的元素,如文檔、段落、書簽或單個的字符。集合是一個對象,該對象包含其他數個對象,通常這些對象屬于相同的類型。例如,一個集合對象中可包含文檔中的所有書簽對象。通過使用屬性和方法,可以修改單個的對象,也可修改整個的對象集合。 在一個應用程序中,最高級別的對象通常是Application 對象,它就是應用程序本身。例如, 在Microsoft Word 對象中的 Application 對象就是Microsoft Word 本身。在Application 對象中包含了一些其他的對象,例如,在Microsoft Word 的Application 對象中包含了Document、Windows、Selection 等對象。因為Document 對象的存在依賴于Word 的Application 對象的存在,所以此 Document 對象被稱之為Application 對象的子對象(Child),反過來,此Application 對象被稱為Document 對象的父對象(Parent)。許多子對象又有它們自己的子對象。例如,在Microsoft Excel 中, Documents 對象包含了Document 對象,或者說,它是Document 對象的父對象,一個父對象可以擁有多個子對象;例如,Word 的Windows對象擁有Panes、Selection 以及Object 等子對象。同樣,一個子對象也可以擁有多個父對象;例如,Word 的Windows 集合對象同時是Application 對象和Document 對象兩者的子對象。對象組成應用程序的方法彼此之間按照它們被分開的內容的功能又相互聯系起來,這叫做對象的分層結構(Objecthierarchy)或是對象的模型(Object model),如圖11-1 所示為Microsoft Word 對象的結構模型圖。 屬性是對象的一個特性或者該對象操作的一個方面。例如,文檔屬性包含名稱、內容、保存狀態,以及是否啟用修訂。要設置一個屬性的值,可在對象的后面帶一個句號、屬性名、一個等號和新的屬性值。下面的示例在“ c”文檔中啟用修訂。 Documents(" c")。TrackRevisions = True 在本例中,Documents 引用由打開的文檔構成的集合,而 “ c ” 識別集合中的一篇文檔, 為該文檔設置了 TrackRevisions 屬性。 方法是對象可以進行的動作。例如,可打印一篇文檔,因而 Document 對象也具有PrintOut 方法。方法通常都具有參數,指明動作是如何進行的。下面的示例是打印活動文檔的前三頁。 ActiveDocument。PrintOut From:=1,To:=3 在大多數情況下,方法是動作,而屬性是性質。使用方法可使對象發生某些事情,而使用屬性則可返回對象的信息,或者引起對象的某個性質的更改。 可以利用對象與對象集的屬性(Properties)和方法(Methods)對對象進行操作。關于屬性與方法的概念在下一節介紹。 操作對象首先應調用該對象,可以有以下兩種方法: 顯示調用方法(Calling it explicitly)。要根據該對象在對象模型中的明確位置進行指向。 隱示調用方法(Calling it implicitly)。不必指出對象在對象模型中的位置,只需確保此操作不會引起混淆與錯誤。例如,你要調用某文檔對象,對此進行操作,如果能確定該文檔是Word 當前(激活)文檔,就可以直接對此進行操作,不會發生混淆,因為Word 中當前文檔是唯一的。 顯示調用方法需要較多的代碼,但不易混淆;隱示調用方法代碼少,但容易混淆,應用時應該慎重。 對象的屬性、方法和事件 方法指的是對象能執行的動作。如果對象共享共同的方法,則可以操作整個對象集合。例如,下列的過程會關閉所有打開的窗體。Sub CloseAll()Forms。CloseEnd Sub 又例如,Add 是屬于 ComboBox 對象的一個方法,因為它會增加一個新項到下拉式列表框中。 下面的程序使用 Add 方法,增加一個新的工程到 ComboBox 中。Sub AddEntry(newEntry as String)Combo1。Add newEntryEnd Sub 屬性定義了對象的特征,諸如大小、顏色或屏幕位置,或某一方面的行為,諸如對象是否有激活或可見的。可以通過修改對象的屬性值來改變對象的特性。 若要設置屬性值,則在對象的引用后面加上一個復合句,它是由屬性名加上等號(=)以及新的屬性值所組成的。例如,下面的過程通過設置窗體中的 Caption 屬性來更改 Visual Basic 窗體的標題。Sub ChangeName(newTitle)myForm。Caption = newTitleEnd Sub 有些屬性并不能設置。每一個屬性的幫助主題,會指出是否可以設置此屬性(讀與寫),或只能讀取此屬性(只讀),還是只能寫入此屬性(只寫)。 可以通過屬性的返回值,來檢索對象的信息。下列的過程使用一個消息框來顯示當前活動文檔的標題,它顯示在當前活動窗體頂部。Sub GetFormName()formName = Screen。ActiveForm。CaptionMsgBox formNameEnd Sub 事件是一個對象可以辨認的動作,像單擊鼠標或按下某鍵等,并且可以寫某些代碼針對所述動作來做響應。用戶做動作或程序代碼的結果可能導致事件的發生,或是由系統 引發。 。

熱心網友

宏是建立在Microsoft Visual Basic Application 即VBA 在后面將進行詳盡的介紹之上的它是一系列組合在一起的Word 命令和指令它們形成了一個命令以實現任務執行的自動化可以將宏看作一個由一串Word 命令和操作構成的小型程序可以創建并執行宏宏實際上就是一條自定義的命令以替代人工進行的一系列費時而單調的重復性Word 操作自動完成所需任務宏的一些典型應用包括1 加速日常編輯和格式設置2 組合多個命令例如插入具有指定大小邊框行數和列數的表格3 使對話框中的選項更易于訪問4 自動執行一系列復雜的任務

熱心網友

一段小程序,你可以自己編寫,也可以調用系統原有的,去達到一定的功能。