① 什麼是vba
Visual Basic for Applications(簡稱VBA)是新一代標准宏語言,是基於Visual Basic for Windows 發展而來的。它與傳統的宏語言不同,傳統的宏語言不具有高級語言的特徵,沒有面向對象的程序設計概念和方法。而VBA 提供了面向對象的程序設計方法,提供了相當完整的程序設計語言。VBA 易於學習掌握,可以使用宏記錄器記錄用戶的各種操作並將其轉換為VBA 程序代碼。這樣用戶可以容易地將日常工作轉換為VBA 程序代碼,使工作自動化。 [1]
VBA是基於 Visual basic發展而來的,與VB具有相似的語言結構。從語言結構上講,VBA是VB的一個子集,它們的語法結構是一樣的。兩者的開發環境也幾乎相同。但是,VB是獨立的開發工具,它不需要依附於任何其他應用程序,它有自己完全獨立的工作環境和編譯、鏈接系統。VBA卻沒有自己獨立的工作環境,它必須依附於某一個主應用程序,VBA專門用於Office的各應用程序中,如Word、 Excel、 Access等。在 Access中,可以通過VBA編寫模塊來滿足特定的需要。 [1]
正是由於VBA與主應用程序的這種關系,使得它與主程序之間的通信變得簡單而高效。它與 AutoCAD完全共享內存空間,所以執行速度比用C語言開發的ADS應用程序要快很多。 [2]
VBA提供了面向對象的程序設計方法,提供了相當完整的程序設計語言。它的編寫是以子過程和函數為單位,在 Access中以模塊形式出現。 [1]
Office取得巨大成功的一個重要原因就是VBA,使用VBA可以完成很多事情,基於Excel、Word的VBA小程序不計其數。Office中的應用程序可以共享VBA語言,如果掌握了在 Excel 2016中使用VBA的方法,那麼在Word、Power Point中使用VBA自然會變得易如反掌。掌握對VBA語言的使用,可以讓復雜的工作簡易化,減少不必要的重復性工作,大大提高我們的工作效率。 [3]
VBA程序員很多是業余程序員,正因為業余,解決的卻是工作中需要解決的問題;所以,VBA程序大多都是只是在部門內部或個人使用的小工具。集成了VBA的其他應用程序也很多,但真正能為程序增色的不多。 [1]
大多數人看到了VBA可以自動化一個程序,可以擴展已有程序,但沒有看到在Office中,VBA代碼可以是錄制的,而不是寫出來的,帶來的好處是,學習曲線變得非常緩。如果沒有宏錄制功能,要熟悉某個Office組件的對象模型,絕非一日之功。 [1]
以ArcGIS為例,ArcGIS擴展必須使用ArcObject,不管是使用VBA也罷,VB也罷,還是C++也罷。但同時,ArcObject的學習不是一天兩天可以搞定,對於業余程序員,要使用VBA來擴展ArcGIS,幾乎沒有可能;專業程序員又不屑使用VBA;而對於公司,如果要基於ArcObject來擴展ArcGIS,選擇VBA意味著源碼的保護很困難。所以,ArcGIS的VBA就如同雞肋。 [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 環境下功能強大、圖形界面豐富的應用軟體系統。 [1]
Visual Basic 程序很大一部分以可視(Visual)形式實現,這意味著在設計階段就可以看到程序運行的屏幕畫面,用戶可以在設計時能夠方便地改動畫面圖像、大小、顏色等,直到滿意為止。VB 的用戶可以是缺乏Windows 及C 語言開發經驗的專業軟體人員,也可以是具有一定Windows開發經驗的專業人員,VB 的可視化編程方法使得原來繁瑣枯燥、令人生畏的Windows 應用程序設計變得輕松自如、妙趣橫生。以往的Windows 應用程序開發工具在設計圖形用戶界面時,都是採用編程的方法,並伴隨大量的計算任務,一個大型應用程序約有90%的程序代碼用來處理用戶界面,而且在程序設計過程中不能看到界面顯示的效果,只有在程序執行時才能觀察到,如果界面效果不佳,還需要回到程序中去修改。Visual Basic 提供了新穎的可視化設計工具,巧妙地將Windows界面設計的復雜性封裝起來,程序開發人員不必再為界面設計而編寫大量程序代碼,僅需採用現有工具按設計者要求的布局,在屏幕上畫出所需界面,並為各圖形對象設置屬性即可,VB 自動產生界面設計代碼,這樣便將事先編制好的控制項可視地連接到一起,構成一個隨時可調整的界面。 [1]
VBA 不但繼承了VB 的開發機制,而且VBA 還具有與VB 相似的語言結構,它們的集成開發環境IDE(Intergrated Development Environment)也幾乎相同。但是,經過優化,VBA 專門用於Office 的各應用程序。VB 可運行直接來自Windows 95 或NT 桌面上的應用程序,而VBA 的項目(Project)僅由使用VBA 的Excel、Word、 PowerPoint 等稱為宿主(Host)的Office 應用程序(Application)來調用。 [1]
區別
1. VB是設計用於創建標準的應用程序,而VBA是使已有的應用程序(EXCEL等)自動化。 [3]
2. VB具有自己的開發環境,而VBA必須寄生於已有的應用程序。 [3]
3. 要運行VB開發的應用程序,用戶不必安裝VB,因為VB開發出的應用程序是可執行文件(*.EXE),而VBA開發的程序必須依賴於它的父應用程序,例如EXCEL。 [3]
4.VBA是VB的一個子集。 [3]
盡管存在這些不同,VBA和VB在結構上仍然十分相似。事實上,如果你已經了解了VB,會發現學習VBA非常快。相應的,學完VBA會給學習VB打下堅實的基礎。而且,當學會在EXCEL中用VBA創建解決方案後,即已具備在WORD ACCESS OUTLOOK FOXPRO POWERPOINT 中用VBA創建解決方案的大部分知識。 [3]
* VBA一個關鍵特徵是你所學的知識在微軟的一些產品中可以相互轉化。 [3]
* VBA可以稱作EXCEL的「遙控器」。 [3]
② vba全稱是什麼
vba全稱是Visual Basic for Applications。
Visual Basic for Applications(VBA)是Visual Basic的一種宏語言,是微軟開發出來在其桌面應用程序中執行通用的自動化(OLE)任務的編程語言。主要能用來擴展Windows的應用程式功能,特別是Microsoft Office軟體。也可說是一種應用程式視覺化的Basic 腳本。該語言於1993年由微軟公司開發的的應用程序共享一種通用的自動化語言--------Visual Basic For Application(VBA),實際上VBA是寄生於VB應用程序的版本。微軟在1994年發行的Excel5.0版本中,即具備了VBA的宏功能。
VB與VBA區別:
1. VB是設計用於創建標準的應用程序,而VBA是使已有的應用程序(EXCEL等)自動化
2. VB具有自己的開發環境,而VBA必須寄生於已有的應用程序.
3. 要運行VB開發的應用程序,用戶不必安裝VB,因為VB開發出的應用程序是可執行文件(*.EXE),而VBA開發的程序必須依賴於它的父應用程序,例如EXCEL.
4.VBA是VB的一個子集。
③ Excel里的VBA是什麼,有什麼用途
Excel里的VBA是Visual Basic的一種宏語言。VBA是微軟開發出來在其桌面應用程序中執行通用的自動化(OLE)任務的編程語言。主要能用來擴展Windows的應用程序功能,特別是Microsoft Office軟體。也可說是一種應用程式視覺化的Basic 腳本。
掌握了VBA,可以發揮以下作用:
1.規范用戶的操作,控制用戶的操作行為;
2.操作界面人性化,方便用戶的操作;
3.多個步驟的手工操作通過執行VBA代碼可以迅速的實現;
4.實現一些VB無法實現的功能。
5.用VBA製做EXCEL登錄系統。
6.利用VBA可以Excel內輕松開發出功能強大的自動化程序。
(3)vba是什麼擴展閱讀:
宏語言VBA 適用於在Office 2000 中的所有應用程序,包括Word 、 Excel、PowerPoint、Access、Outlook 以及Project。在Office 97 的各應用程序中,新增了Visual Basic 編輯器。這樣,用戶無論是在Excel 中,還是在Word 中以至是在Access 中建立和管理VBA 都具有統一的方法和標准。
VBA可以訪問許多操作系統函數並支持文檔打開時自動執行宏。這使得用這種語言寫計算機病毒成為可能。1990年代中後期,宏病毒成為了最流行的計算機病毒類型之一。其它的包括宏語言的項目,如OpenOffice.org,故意從其宏語言中排除了一些功能(如:自動執行)以避免破壞程序。然而,這一特性在很多事務中受到歡迎。
VBA 是基於Visual Basic 發展而來的,它們具有相似的語言結構。Visual Basic 是Microsoft 的主要圖形界面開發工具,VBA 5.0 (亦即VBA 97)則是Visual Basic 5.0 的子集。Visual Basic 是由Basic 發展而來的第四代語言。Visual Basic 作為一套獨立的 Windows 系統開發工具,可用於開發Windows 環境下的各類應用程序,是一種可視化的、面向對象的、採用事件驅動方式的結構化高級程序設計語言。它具有高效率、簡單易學及功能強大的特點。
④ VBA是什麼
直到90年代早期,使應用程序自動化還是充滿挑戰性的領域.對每個需要自動化的應用程序,人們不得不學習一種不同的自動化語言.例如:可
以用EXCEL的宏語言來使EXCEL自動化,使用WORD BASIC使WORD自動化,等等.微軟決定讓它開發出來的應用程序共享一種通用的自動化語
言--------Visual Basic For Application(VBA),可以認為VBA是非常流行的應用程序開發語言VASUAL BASIC 的子集.實際上VBA是"寄生於"VB應
用程序的版本.VBA和VB的區別包括如下幾個方面:
1. VB是設計用於創建標準的應用程序,而VBA是使已有的應用程序(EXCEL等)自動化
2. VB具有自己的開發環境,而VBA必須寄生於已有的應用程序.
3. 要運行VB開發的應用程序,用戶不必安裝VB,因為VB開發出的應用程序是可執行文件(*.EXE),而VBA開發的程序必須依賴於它的"父"應用程
序,例如EXCEL.
盡管存在這些不同,VBA和VB在結構上仍然十分相似.事實上,如果你已經了解了VB,會發現學習VBA非常快.相應的,學完VBA會給學習VB打下堅
實的基礎.而且,當學會在EXCEL中用VBA創建解決方案後,即已具備在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA創建解決方案的大部分知識.
* VBA一個關鍵特徵是你所學的知識在微軟的一些產品中可以相互轉化.
* VBA可以稱作EXCEL的「遙控器」.
⑤ Excel vba是什麼
故障分析:excel VBA其實就是大家代碼編輯程序,有的人被人認為是宏,但是excel vba是包括宏程序的。下面還是一起來看看excel vba是什麼?如何打開?
一、excel vba是什麼?
excel VBA中的vba是Visual Basic For Application的縮寫。一般用來實現簡單或中等的辦公自動化應用。因為易學並且能很好的被office系列應用程序支持,因此得到了很廣泛的應用。
二、excel vba怎麼打開?
先安裝一個vba編輯器,在「Office共享功能」中有「Visual Basic for Application」,要安裝。啟動Excel後,選左上角的大點,Excel選項-》信任中心-》信任中心設置-》宏設置-》「禁用宏,並發出通知」。
提示:這時在打開有VBA的Excel,編輯欄在側會有提示,一定要啟用,否則無法編輯和使用VBA。
新手必知:打開Excel出現宏怎麼解決?
需要進入VBA編輯器,就按住alt+F11即可打開就可以自己寫代碼了,也可以在這里閱讀已有的代碼。 如果是宏,可以直接Alt+F8 選擇執行即可打開運行。
三、excel vba的用途:
簡單地說,就是模擬人工操作,完成一些挺繁瑣的事情。比如:從網上復制到Word的文章,格式很亂,你就可以自己寫一個宏,來自動完成整理工作,而不是人工一點一點地改,那樣太累了。主要功能用途如下:
1. 使重復的任務自動化
2. 自定義EXCEL工具欄,菜單和界面
3. 簡化模板的使用
4. 自定義EXCEL,使其成為開發平台
5. 創建報表
6. 對數據進行復雜的操作和分析
以下就是Visual Basic for Application的一些部分代碼用途案例:
1、本示例為設置密碼窗口 (1)
If Application.InputBox("請輸入密碼:") = 1234 Then [A1] = 1 '密碼正確時執行
Else: MsgBox "密碼錯誤,即將退出!" '此行與第2行共同設置密碼 End If
2、本示例為設置密碼窗口 (1)
X = MsgBox("是否真的要結帳?", vbYesNo) If X = vbYes Then Close
3、本示例為設置工作表密碼
ActiveSheet.Protect Password:=641112 ' 保護工作表並設置密碼
ActiveSheet.Unprotect Password:=641112 '撤消工作表保護並取消密碼 '
4、本示例關閉除正在運行本示例的工作簿以外的其他所有工作簿,並保存其更改內容 。
For Each w In Workbooks
If w.Name ThisWorkbook.Name Then w.Close SaveChanges:=True End If Next w '每次打開工作簿時,
5、本示例都最大化 Microsoft Excel 窗口。 Application.WindowState = xlMaximized '
6、本示例顯示活動工作表的名稱。
MsgBox "The name of the active sheet is " & ActiveSheet.Name '
7、本示例保存當前活動工作簿的副本。
ActiveWorkbook.SaveCopyAs "C:TEMPXXXX.XLS"
總結:VBA究竟是什麼?更確切地講,它是一種自動化語言,它可以使常用的程序自動化,可以創建自定義的解決方案。
比如有個工作表,經常需要更新數據,打開數據源,調整格式,添加運算公式,等等相對固定重復的工作,就可以使用Marco宏。
某天當你工作的時候,點工具-宏-錄制,然後從頭到尾做一次,VBA會將你的所有動作寫成一個宏程序。這個宏程序有基本的語言常識都可以弄懂,但是也會有許多無用的語句。至少,以後運行宏可以節約你的重復工作時間。其次進一步,學習條件、循環、變數等高階用法。多學多問多實踐就能學好的。
⑥ VBA是什麼
VBA(Visual Basic for Applications)是Visual Basic的一種宏語言,是在其桌面應用程序中執行通用的自動化(OLE)任務的編程語言。主要能用來擴展Windows的應用程序功能,特別是Microsoft Office軟體。它也可說是一種應用程式視覺化的 Basic 腳本。
VBA提供了面向對象的程序設計方法,提供了相當完整的程序設計語言。它的編寫是以子過程和函數為單位,在 Access中以模塊形式出現。
(6)vba是什麼擴展閱讀
vb和vba區別
VBA是VB的一個子集,也可以講是VB的簡化版。VB的應用程序編譯後可以在系統下直接運行,VBA不行,必須在office下運行。VBA統計學中的曲線圖有現成的「宏」編程序比較方便,但沒有個性化,修改比較麻煩。VB畫圖功能非常強大什度么都能畫,但編程序比較麻煩。
vba主要應用在Office組件里。比如在Excel里,可以自己寫函數,可以用代碼定義一系列的操作。vba作為程序的自動化腳本而存在,是為了提高程序的自動化程度。而VB是編寫程序的工具。
⑦ 什麼是VBA
VBA(Visual Basic for Application) 是一種完全面向對象體系結構的編程語言,由於其在開發方面的易用性和具有強大的功能,因此許多應用程序均嵌入該語言作為開發工具。Autodesk公司也在AutoCAD R14.01版本開始內置了VBA開發工具,同時提供了適用於VBA開發的ActiveX Automation對象模型。
VBA具有很強的開發能力,其主要功能包括:
(1) 創建對話框及其它界面。
(2) 創建工具欄。
(3) 建立模塊級宏指令。
(4) 提供建立類模塊的功能。
(5) 具有完善的數據訪問與管理能力,可通過DAO(數據訪問對象)對Access資料庫或其它外部資料庫進行訪問和管理。
(6) 能夠使用SQL語句檢索數據,與RDO(遠程數據對象)結合起來,可建立C/S(客戶機/服務機)級的數據通信。
(7) 能夠使用Win32 API提供的功能,建立應用程序與操作系統間的通信。
從功能上來說,VBA與VB幾乎完全一樣,或者說VBA是VB的一個子集。但它們之間更本質的區別在於VBA沒有自己獨立的工作環境,而必須依附於主應用程序;而VB則不依附於任何其它的應用程序,具有完全獨立的工作環境和編譯、連接系統。
由於VBA依附於主應用程序,因此它與主應用程序之間的通信簡單而富有效率,其代碼完全是在進程內執行的。VBA的代碼在AutoCAD中仍以解釋的方式執行,但由於它與AutoCAD共享內存空間,因此執行速度比ADS程序還要快
⑧ vba是什麼
VBA,Visual Basic For Application的縮寫,也叫做宏程序。是微軟開發出來在其桌面應用程序中執行通用的自動化(OLE)任務的編程語言。VBA必須要有一個宿主應用程序才能運行,而且不能用於創建獨立應用程序。VBA可使常用的過程或者進程自動化,可以創建自定義的解決方案,適用於來定製已有的桌面應用程序。
⑨ Excel裡面VBA是什麼
屬於一種編譯語言,可以使用簡單的代碼來進行高效處理工作
VBA是VB語言的一個子集,專門在Office裡面使用的,被稱之為宏
加入宏編譯的EXCEL後綴名為XLSM
⑩ vba是什麼
VBA是什麼
直到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開發出的應用程序是可執行文件(*.EXE),而VBA開發的程序必須依賴於它的父應用程序,例如EXCEL.
盡管存在這些不同,VBA和VB在結構上仍然十分相似.事實上,如果你已經了解了VB,會發現學習VBA非常快.相應的,學完VBA會給學習VB打下堅實的基礎.而且,當學會在EXCEL中用VBA創建解決方案後,即已具備在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用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 套裝軟體的各項強大功能,所以對於程序設計人員的程序設計和開發更加方便快捷。
編輯本段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 有關的基礎知識。
編輯本段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)來調用。
編輯本段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 模板中的宏。