VBA

VBA

Visual Basic宏語言
Visual Basicfor Applications(VBA)是VisualBasic的一種宏語言,是微軟開發出來在其桌面應用程序中執行通用的自動化(OLE)任務的編程語言。主要能用來擴展Windows的應用程式功能,特别是MicrosoftOffice軟件。也可說是一種應用程式視覺化的Basic腳本。該語言于1993年由微軟公司開發的的應用程序共享一種通用的自動化語言。
    中文名: 外文名:Visual Basic for Applications 所屬學科: 釋義:Visual Basic的一種宏語言 功能:擴展Windows的應用程式功能 發行時間:1993年 語言屬性:應用程序一種通用的自動化語言 簡稱:VBA 具備功能時間:1994年 操作系統:Microsoft Visual,Mac OSX 啟發語言:QuickBASIC,Visual Basic

背景

多年來,Microsoft公司一直對新聞界及開發人員暗示,它的長遠策略包括一種通用的應用程序編程語言。這種語言将用于微軟的所有應用程序中,它起源于應用得相當廣泛的計算機語言—VB。這種語言将向高級用戶及開發人員提供一種應用程序間通用的應用程序語言(也就是宏語言),因而可以減少學習時間和支持費用;而且這種語言也會為開發人員提供一種開發方法,用于開發集成多個應用程序的系統,即多個應用程序協調工作,以解決商業上的問題。

相關區别

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創建解決方案後,即已具備在WORDACCESSOUTLOOKFOXPROPOWERPOINT中用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倍,而是數十倍或更多,因為在學習過程中,必須可以把這些對象在大腦中很好的組織,以控制其複雜度。

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

注意

本文提到的VisualBasic如果不加特别說明,都是指VisualBasicForApplications。

對象是VisualBasic這一宏偉大廈的基石,在VisualBasic中進行的幾乎任何操作都與修改對象有關。Word的任何元素(如文檔、段落、域、書簽等),都可以用VisualBasic中的對象來代表。與平面列表中的命令不同,部分對象隻能通過其他對象才能加以訪問。例如,可以通過不同的對象(如Style、Selection和Find對象)來訪問Font對象。

應用加粗格式的編程任務就表明了兩種編程語言之間的區别。下面的WordBasic指令對所選内容應用加粗格式。

下面的示例是VisualBasic語句,也是對所選内容應用加粗格式。

Selection.Font.Bold=True

VisualBasic不包含Bold語句和函數,卻有一個名為Bold的屬性(屬性通常指一個對象的特性,例如大小、顔色,或者是否是加粗)。Bold是Font對象的一個屬性。同樣地,Font是返回一個Font對象的Selection對象的一個屬性。按照下面的對象結構,可以生成指令,以将加粗格式應用于所選内容。

Bold屬性是一個Boolean類型、可讀寫的屬性。這意味着可以将Bold屬性設置為True或False(真或假),也可返回當前值。下面WordBasic指令的返回值表明是否将加粗格式應用于所選内容。

x=Bold()

下面的示例是VisualBasic語句,返回所選内容的加粗格式的狀态。

x=Selection.Font.Bold

要在VisualBasic中執行一個任務,就需要确定合适的對象。例如,如果用戶想應用【字體】對話框中的字符格式,可使用Font對象。然後需要确定如何理順從Application對象到Font對象的Word對象結構,以找到包含需要修改的Font對象的對象。在确定了該對象的路徑之後(例如,Selection.Font),可使用VisualBasic編輯器中的【對象浏覽器】、【幫助】或【自動列表成員】之類的功能來确定可将什麼屬性和方法應用于該對象。

将WordBasic宏轉換為VisualBasic

宏可使任務自動化,如果在Word中重複進行某項工作,可用宏使其自動執行。宏是将一系列的Word命令和指令組合在一起,形成一個命令,以實現任務執行的自動化。用戶可創建并執行一個宏,以替代人工進行一系列費時而重複的Word操作。事實上,它是一個自定義命令,用來完成所需任務。

宏的一些典型應用如:加速日常編輯和格式設置、組合多個命令、使對話框中的選項更易于訪問、使一系列複雜的任務自動執行等。

Word提供了兩種創建宏的方法:宏錄制器和VisualBasic編輯器。宏錄制器可幫助用戶開始創建宏。Word在VBA編程語言中把宏錄制為一系列的Word命令。可在VisualBasic編輯器中打開已錄制的宏,修改其中的指令。也可用VisualBasic編輯器創建包括VisualBasic指令的非常靈活和強有力的宏,這些指令無法采用錄制的方式。

當第一次進行任何操作時,Word2000将自動轉換Word6.x或Word95模闆中的宏。

其他

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

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

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

相關詞條

相關搜索

其它詞條