VBA

VBA

Visual Basic for Applications(VBA)是Visual Basic的一種宏語言,是微軟開發出來在其桌面應用程式中執行通用的自動化(OLE)任務的程式語言。主要能用來擴展Windows的套用程式功能,特別是Microsoft Office軟體。也可說是一種套用程式視覺化的Basic 腳本。該語言於1993年由微軟公司開發的的應用程式共享一種通用的自動化語言--------Visual Basic For Application(VBA),實際上VBA是寄生於VB應用程式的版本。

基本信息

相關區別

VBAVBA
1. VB是設計用於創建標準的應用程式,而VBA是使已有的應用程式(EXCEL等)自動化

2. VB具有自己的開發環境,而VBA必須寄生於已有的應用程式.

3. 要運行VB開發的應用程式,用戶不必安裝VB,因為VB開發出的應用程式是執行檔(*.EXE),而VBA開發的程式必須依賴於它的父應用程式,例如EXCEL.

4.VBA是VB的一個子集。

儘管存在這些不同,VBA和VB在結構上仍然十分相似.事實上,如果你已經了解了VB,會發現學習VBA非常快.相應的,學完VBA會給學習VB打下堅實的基礎.而且,當學會在EXCEL中用VBA創建解決方案後,即已具備在WORD ACCESS OUTLOOK FOXPRO POWERPOINT 中用VBA創建解決方案的大部分知識.

* VBA一個關鍵特徵是你所學的知識在微軟的一些產品中可以相互轉化.

* VBA可以稱作EXCEL的“遙控器”.

VBA究竟是什麼?更確切地講,它是一種自動化語言,它可以使常用的程式自動化,可以創建自定義的解決方案.

此外,如果你願意,還可以將EXCEL用做開發平台實現應用程式.

Office取得巨大成功的一個重要原因就是VBA,使用VBA可以完成很多事情,基於Excel、Word的VBA小程式不計其數。

VBA程式設計師很多是業餘程式設計師,正因為業餘,解決的卻是工作中需要解決的問題;所以,VBA程式大多都是只是在部門內部或個人使用的小工具。

集成了VBA的其他應用程式也很多,但真正能為程式增色的不多。

大多數人看到了VBA可以自動化一個程式,可以擴展已有程式,但沒有看到在Office中,VBA代碼可以是錄製的,而不是寫出來的,帶來的好處是,學習曲線變得非常緩。如果沒有宏錄製功能,要熟悉某個Office組件的對象模型,絕非一日之功。

以ArcGIS為例,ArcGIS擴展必須使用ArcObject,不管是使用VBA也罷,VB也罷,還是C++也罷。但同時,ArcObject的學習不是一天兩天可以搞定,對於業餘程式設計師,要使用VBA來擴展ArcGIS,幾乎沒有可能;專業程式設計師又不屑使用VBA;而對於公司,如果要基於ArcObject來擴展ArcGIS,選擇VBA意味著源碼的保護很困難。所以,ArcGIS的VBA就如同雞肋。

不過,學習AO的時候,使用VBA比使用其他語言要容易一些,寫幾行代碼,然後直接運行測試結果,這種互動式的學習應該是最好的學習方法。

ArcGIS以及AO與Office相比,還有一個很大的差別,就是ArcGIS缺乏中等粒度的對象,例如Word和Excel的Range對象。對於Office開發,可以在對底層小粒度對象一無所知的狀況下做很多事情,這就是抽象的力量。常人可以處理的複雜度是有限的,面對數十個對象和幾百個對象,後者需要付出的努力不是10倍,而是數十倍或更多,因為在學習過程中,必須可以把這些對象在大腦中很好的組織,以控制其複雜度。

Visual Basic for Applications(簡稱VBA)是新一代標準宏語言,是基於Visual Basic for Windows 發展而來的。它與傳統的宏語言不同,傳統的宏語言不具有高級語言的特徵,沒有面向對象的程式設計概念和方法。而VBA 提供了面向對象的程式設計方法,提供了相當完整的程式設計語言。VBA 易於學習掌握,可以使用宏記錄器記錄用戶的各種操作並將其轉換為VBA 程式代碼。這樣用戶可以容易地將日常工作轉換為VBA 程式代碼,使工作自動化。因此,對於在工作中需要經常使用Office 套裝軟體的用戶,學用VBA 有助於使工作自動化,提高工作效率。另外,由於VBA 可以直接套用Office 套裝軟體的各項強大功能,所以對於程式設計人員的程式設計和開發更加方便快捷。

注意

本文提到的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 模板中的宏。

其他

掌機GBA的模擬器,VisualBoyAdvance,簡稱VBA,目前最新版本為1.80中文版。

該模擬器由Forgotten開發,是目前windows上最好的幾款GBA模擬器之一,據說可以完美模擬GBA上100%的遊戲並且集成GB/GBC模擬功能,可以實現一機玩GB/GBC/GBA遊戲。遺憾的是早已停止開發,不過在VBA基礎上有其他團隊開發的GBA模擬器,功能性可能更為強大。

VBA功能較為強大,支持及時存/讀檔、多點及時存檔、金手指、按鍵修改、音樂音效等功能,甚至支持反編碼調試。

相關詞條

相關搜尋

熱門詞條