直到20世紀90年代初,自動化應用程序仍然是壹個具有挑戰性的領域。對於每個需要自動化的應用程序,人們必須學習不同的自動化語言。例如,您可以使用EXCEL的宏語言來自動化EXCEL,使用WORD BASIC來自動化WORD。諸如此類。微軟決定讓其開發的應用* * *享受壹種通用的自動化語言——VISUAL BASIC for Application(VBA)。可以認為VBA是非常流行的應用程序開發語言Visual Basic的壹個子集。事實上,VBA是壹個寄生在VB應用程序上的版本。VBA和VB之間的差異包括以下幾個方面:
1.VB是壹個應用程序,旨在創建標準,而VBA是自動化現有的應用程序(EXCEL等)。).
2.VB有自己的開發環境,VBA必須寄生在現有的應用程序上。
3.要運行VB開發的應用程序,用戶不需要安裝VB,因為VB開發的應用程序是壹個可執行文件(*。VBA開發的程序必須依賴其母應用程序,如EXCEL。
盡管有這些不同,VBA和VB在結構上仍然非常相似。事實上,如果妳已經知道VB,妳會發現學習VBA非常快。相應地,學習VBA將為學習VB打下堅實的基礎。此外,當您學習在EXCEL中使用VBA創建解決方案時,您已經掌握了在Word Access Outlook FoxPro Prower Point中使用VBA創建解決方案的大部分知識。
VBA的壹個重要特點是,妳所學到的東西可以在微軟的壹些產品中相互轉化。
VBA堪稱EXCEL的“遙控器”。
VBA到底是什麽?更準確地說,它是壹種自動化語言,可以自動化常見的程序並創建定制的解決方案。
此外,如果您願意,還可以使用EXCEL作為開發平臺來實現應用程序。
Office取得巨大成功的壹個重要原因是VBA,它可以完成許多事情,還有無數基於Excel和Word的VBA小程序。
許多VBA程序員是業余程序員。由於他們的業余愛好者,他們解決了工作中需要解決的問題。因此,VBA程序大多是只在部門或個人內部使用的小工具。
還有許多其他應用程序集成了VBA,但很少能真正為程序增添色彩。
大多數人看到VBA可以自動化程序並擴展現有程序,但他們沒有看到VBA代碼可以錄制而不是在辦公室編寫,這帶來了學習曲線變得非常緩慢的優勢。如果沒有宏錄制功能,熟悉壹個Office組件的對象模型絕非壹日之功。
以ArcGIS為例,無論是VBA、VB還是C++,ArcGIS擴展模塊都必須使用ArcObject。但同時,學習ArcObject也不是壹兩天就能完成的。對於業余程序員來說,使用VBA擴展ArcGIS幾乎是不可能的。專業程序員不屑於使用VBA;;對於該公司來說,如果您想基於ArcObject擴展ArcGIS,選擇VBA意味著很難保護源代碼。因此,ArcGIS的VBA就像雞肋壹樣。
然而,學習AO時,使用VBA比使用其他語言更容易。寫幾行代碼然後直接運行測試結果應該是最好的學習方法。
ArcGIS與AO和Office還有壹個很大的區別,即ArcGIS缺少中等粒度的對象,例如Word和Excel的範圍對象。對於Office開發,您可以在對底層小粒度對象壹無所知的情況下做很多事情。這就是抽象的力量。普通人能夠處理的復雜性是有限的。在面對幾十個對象和幾百個對象時,後者需要工作的次數不是10次,而是幾十次或更多次,因為在學習過程中,這些對象必須在大腦中進行良好的組織以控制它們的復雜性。
Visual Basic for Applications(簡稱VBA)是基於Visual Basic for Windows的新壹代標準宏語言。它不同於傳統的宏語言,後者不具備高級語言的特點,也沒有面向對象的編程概念和方法。VBA提供了壹種面向對象的編程方法和壹種相當完整的編程語言。VBA容易學習和掌握。您可以使用宏記錄器來記錄用戶的各種操作並將其轉換為VBA程序代碼。這樣,用戶可以很容易地將他們的日常工作轉換成VBA程序代碼,並使他們的工作自動化。因此,對於工作中需要經常使用辦公軟件的用戶來說,學習VBA有助於實現工作自動化,提高工作效率。此外,VBA可以直接應用Office套件軟件的強大功能,因此程序員設計和開發程序更加方便快捷。
編輯VBA基金會的這段話。
Visual Basic的應用程序版本(VBA)是微軟追求的長期目標,它使可編程應用軟件得以完美實現。作為壹種通用宏語言,VBA可供所有微軟可編程應用程序使用。在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相關的基礎知識。
編輯這壹段VB和VBA
VBA是基於Visual Basic開發的,它們具有相似的語言結構。Visual Basic是微軟的主要圖形界面開發工具,而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程序的很大壹部分是以可視化形式實現的,這意味著在設計階段就可以看到程序的屏幕畫面,用戶可以很容易地更改畫面圖像、大小、顏色等。直到他們滿意為止。VB的用戶可以是缺乏Windows和C語言開發經驗的專業軟件人員,也可以是具有壹定Windows開發經驗的專業人員。VB的可視化編程方法使原本繁瑣而令人望而生畏的Windows應用程序設計變得簡單而有趣。過去,在設計圖形用戶界面時,Windows應用程序開發工具都使用編程方法,伴隨著大量的計算任務。壹個大型應用程序約90%的程序代碼用於處理用戶界面,在程序設計過程中無法看到界面顯示效果,只能在程序執行時才能觀察到。如果界面效果不好,需要返回程序進行修改。Visual Basic提供了壹種新穎的可視化設計工具,巧妙地封裝了Windows界面設計的復雜性。程序員不必為界面設計編寫大量的程序代碼。他們只需要使用現有的工具根據設計者要求的布局在屏幕上繪制所需的界面,並為每個圖形對象設置屬性。VB自動生成界面設計代碼,使預先編程的控件可以可視化地連接在壹起,形成壹個可以隨時調整的界面。
VBA不僅繼承了VB的開發機制,而且具有與VB相似的語言結構,並且它們的集成開發環境IDE幾乎相同。但是,經過優化後,VBA專門用於辦公應用程序。VB可以直接從Windows 95或NT桌面運行應用程序,而VBA項目只能由Excel、Word、PowerPoint和其他稱為主機的辦公應用程序調用。
用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中的對象表示。與平面列表中的命令不同,有些對象只能通過其他對象來訪問。例如,可以通過不同的對象訪問字體對象,如樣式、選擇和查找對象。
應用粗體格式的編程任務顯示了兩種編程語言之間的差異。以下WordBasic指令對所選內容應用加粗格式。
以下示例是壹條Visual Basic語句,該語句也對所選內容應用加粗格式。
選擇。Font.Bold = True
Visual Basic不包含粗體語句和函數,但有壹個名為Bold的屬性(屬性通常指對象的特征,如大小、顏色或是否為粗體)。粗體是字體對象的壹個屬性。同樣,Font是Selection對象的壹個屬性,它返回壹個Font對象。根據以下對象結構,可以生成將粗體格式應用於所選內容的指令。
Bold屬性是壹個Boolean類型的讀/寫屬性。這意味著您可以將Bold屬性設置為True或False(True或False)或返回當前值。下列WordBasic指令的返回值指示是否對所選內容應用加粗格式。
x =粗體()
以下示例是壹條Visual Basic語句,該語句返回選定內容的粗體格式。
x =選擇。字體。粗體
若要在Visual Basic中執行任務,需要確定適當的對象。例如,如果用戶希望在字體對話框中應用字符格式,他可以使用Font對象。然後,我們需要確定如何理順從應用程序對象到字體對象的Word對象結構,從而找到包含需要修改的字體對象的對象。確定對象的路徑後(例如,選擇。字體),您可以使用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模板中的宏。