VBA概述:VBA是Visual Basic For Application的縮寫(xiě),是VB在office中的運(yùn)用。
是基于Visual Basic For Windows發(fā)展而來(lái)的,VB For Windows是Microsoft于1992年推出的開(kāi)發(fā)Windows應(yīng)用程序的程序設(shè)計(jì)語(yǔ)言,由于基語(yǔ)法簡(jiǎn)單,易學(xué)易用,所以深受用戶(hù)的歡迎。而VBA和VB For Windows大體相似。
在Office2000之前,VBA在Word,Excel,Access等Office系統(tǒng)軟件中的運(yùn)用有些有同,但是到Office2000就統(tǒng)一起來(lái)了。Excel是第一個(gè)包含有VBA的應(yīng)用程序,自O(shè)ffice2000以后,Eexel,Word,PowerPoint,Access中已經(jīng)有了統(tǒng)一標(biāo)準(zhǔn)的宏語(yǔ)言VBA,其中Excel和Access的VBA最為成熟。
在Excel中VBA程序即可以存放有.xls中,也可以單獨(dú)以文本形式存放。對(duì)VBA的學(xué)習(xí),用戶(hù)首先必須VB有一定的了解(不過(guò)不必很專(zhuān)業(yè),畢竟經(jīng)常用Excel的用戶(hù)一般是辦公人員,不可能是專(zhuān)業(yè)編程人員),然后結(jié)合宏記錄器學(xué)習(xí)。
因?yàn)?,宏記錄器可以記錄宏,用?hù)可以非常清楚了然VBA的很多知識(shí)。另外,如果不是功能很強(qiáng)大的VBA程序,那么用宏記錄器就足夠了。
打開(kāi)密碼記錄器的方法,通過(guò)“工具->宏->錄制新宏”。另外,用戶(hù)可能用“工具->宏->宏?!?/p>
來(lái)管理宏。用“工具->宏->VB 編輯器”或Alt+F11可以打開(kāi)VB編輯器,在VB編程器,可以很方便地整個(gè)VB工程進(jìn)行管理,可以方便地編寫(xiě)VBA代碼,另外,用戶(hù)可以再點(diǎn)擊Alt+F11切換到Excel窗口。
VBA的使用過(guò)程: 1、創(chuàng)建一個(gè)Excel文件。 2、創(chuàng)建一個(gè)控件,然后雙擊控件或是右擊該控件,點(diǎn)擊“查看代碼”,就可以對(duì)該控件的某個(gè)事件,如click,keydown等。
進(jìn)行編寫(xiě)執(zhí)行代碼了。創(chuàng)建控件的方法是,點(diǎn)擊“視圖->工具欄->控件工具箱”,打開(kāi)“控件工具箱”欄,然后就可以直接拖動(dòng)某個(gè)控件到Excel單元格中去。
在Excel中窗口,添加的控件一般是處于執(zhí)行狀態(tài)的,如果要對(duì)這個(gè)控件進(jìn)行編輯,除了第一次建立的時(shí)候可以對(duì)它進(jìn)行屬性編輯外,打開(kāi)“控件工具箱”,也可以使控件處于編輯狀態(tài),如果還不行,可以再添加一個(gè)控件,然后已有的控件絕對(duì)會(huì)處于編輯狀態(tài)。當(dāng)然,對(duì)控件修改完畢后,別忘了刪除剛才新添加的沒(méi)有用的控件。
在編輯狀態(tài)中,你可以右擊該控件,點(diǎn)擊“屬性”,那么就可以打開(kāi)屬性窗口,在這個(gè)窗口里,你可以很方便的對(duì)這個(gè)控件的名字,標(biāo)題,大小等屬性進(jìn)行編輯。 3、手動(dòng)或用宏記錄器對(duì)該控件的某個(gè)事件進(jìn)行編碼。
宏記錄器簡(jiǎn)單易用,不過(guò)強(qiáng)大的功能還是必須手動(dòng)編寫(xiě)VBA。VBA對(duì)象介紹: 編寫(xiě)VBA代碼的最關(guān)鍵在于靈活運(yùn)用VBA對(duì)象,對(duì)這些VBA對(duì)象的屬性或方法進(jìn)行操作。
另外,你也可以創(chuàng)建自定義函數(shù),來(lái)對(duì)某些操作進(jìn)行封裝。既然是VBA,編碼風(fēng)格當(dāng)然和VB相同,如果會(huì)VB,那么只要對(duì)VBA的對(duì)象比較了解,就可以編寫(xiě)功能強(qiáng)大的VBA程序;同樣,如果不會(huì)VB,那么,只需要了解VBA的對(duì)象就夠了,因?yàn)樗容^簡(jiǎn)單易學(xué)。
以下分別討論VBA各對(duì)象對(duì)其屬性與方法: 在一些可以包含其他對(duì)象的窗口對(duì)象中,有幾個(gè)特殊的屬性,其屬性值是當(dāng)前活動(dòng)對(duì)象,對(duì)它們,可以直接引用。表1 一些特殊的屬性 對(duì)象名 含義 ActiveWorkbook 當(dāng)前工作簿,即如果你打開(kāi)了幾個(gè)Excel文件,那么你當(dāng)然正在編輯的Excel文件即ActiveWorkbook ActiveSheet 當(dāng)前工作簿中的當(dāng)前工作表,即當(dāng)前編輯的Excel文件中正在編輯的工作表 ActiveCell 當(dāng)前工作表中活動(dòng)單元格 ActiveChart 當(dāng)前工作簿中的活動(dòng)圖表 Selection 當(dāng)前被選定的對(duì)象 下面詳談各對(duì)象及它們的屬性和方法 一、Application對(duì)象 此對(duì)象指Excel應(yīng)用程序的工作環(huán)境。
屬性 1.Caption屬性 含義:Excel應(yīng)用程序標(biāo)題欄顯示的文本。 舉例:Application.caption=“船員管理系統(tǒng)”,如賦值Empty,則恢復(fù)Excel默認(rèn)的標(biāo)題欄。
2.Cursor屬性 含義:Excel中鼠標(biāo)的形狀。 表2 Cursor屬性 屬性值 鼠標(biāo)形狀 xlDefault 缺少型值,鼠標(biāo)呈缺少形狀 xlWait 等待型值,鼠標(biāo)呈不斷翻轉(zhuǎn)的沙漏形狀 xlNorthwestArrow 箭頭型值,鼠標(biāo)呈標(biāo)準(zhǔn)箭頭形狀 xlIBeam 文本型值,鼠標(biāo)呈“I”字形以等待用戶(hù)輸入文本 操作:Application.Cursor=xlWait等。
3、DisplayAlerts屬性 含義:用以確定是否顯示系統(tǒng)的應(yīng)用提示和警告信息,如果不想顯示,則把些屬性設(shè)為false,反之亦然。4、DisplayFormulaBar屬性 含義:用以確定是否顯示公式編輯欄 5、DisplayScrollBars屬性 含義:用以確定是否顯示Excel的滾動(dòng)條 6、DisplayStatusBar屬性 含義:用以確定是否顯示Excel的狀態(tài)欄 7、EnableCancelkey屬性 含義:用以確定是否允許用戶(hù)中斷正在執(zhí)行著的VBA程序。
缺省情況下,在VBA程序執(zhí)行過(guò)程中,用戶(hù)按下Ctrl+Break能夠中斷VBA程序的執(zhí)行。此時(shí)此屬性即值為xlInterrupt。
若要禁止中斷VBA程序,由賦值為xlDisabled;若需要VBA執(zhí)行過(guò)程中遇到錯(cuò)誤進(jìn)中止,由賦值為xlErrorHandler8、ScreenUpdating屬性 含義:用以確定是否顯示VBA程序的中間運(yùn)算結(jié)果。 9、StatusBar屬性 含義:設(shè)置狀態(tài)欄的文本 10、ActiveWorkbook屬性 含義:如表1介紹。
11、ActiveSheet 含義:如表1介紹。 12、ActiveCell屬性 含義:如表1介紹。
13、ThisWorkBook屬性 含義:用以返回正在執(zhí)行著VBA程序。
Visual Basic for Applications(簡(jiǎn)稱(chēng)VBA)是新一代標(biāo)準(zhǔn)宏語(yǔ)言,是基于Visual Basic for Windows 發(fā)展而來(lái)的。
它與傳統(tǒng)的宏語(yǔ)言不同,傳統(tǒng)的宏語(yǔ)言不具有高級(jí)語(yǔ)言的特征,沒(méi)有面向?qū)ο蟮某绦蛟O(shè)計(jì)概念和方法。而VBA 提供了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,提供了相當(dāng)完整的程序設(shè)計(jì)語(yǔ)言。
VBA 易于學(xué)習(xí)掌握,可以使用宏記錄器記錄用戶(hù)的各種操作并將其轉(zhuǎn)換為VBA 程序代碼。這樣用戶(hù)可以容易地將日常工作轉(zhuǎn)換為VBA 程序代碼,使工作自動(dòng)化。
因此,對(duì)于在工作中需要經(jīng)常使用Office 套裝軟件的用戶(hù),學(xué)用VBA 有助于使工作自動(dòng)化,提高工作效率。另外,由于VBA 可以直接應(yīng)用Office 套裝軟件的各項(xiàng)強(qiáng)大功能,所以對(duì)于程序設(shè)計(jì)人員的程序設(shè)計(jì)和開(kāi)發(fā)更加方便快捷。
11.1 VBA 基礎(chǔ) Visual Basic 的應(yīng)用程序版(VBA)是Microsoft 公司長(zhǎng)期追求的目標(biāo),使可編程應(yīng)用軟件得到完美的實(shí)現(xiàn),它作為一種通用的宏語(yǔ)言可被所有的Microsoft 可編程應(yīng)用軟件所共享。在沒(méi)有VBA 以前,一些應(yīng)用軟件如Excel、Word、Access、Project 等都采用自己的宏語(yǔ)言供用戶(hù)開(kāi)發(fā)使用,但每種宏語(yǔ)言都是獨(dú)立的,需要用戶(hù)專(zhuān)門(mén)去學(xué)習(xí),它們之間互不兼容,使得應(yīng)用軟件之間不能在程序上互聯(lián)。
擁有一種可跨越多個(gè)應(yīng)用軟件,使各應(yīng)用軟件產(chǎn)品具有高效、靈活且一致性的開(kāi)發(fā)工具是至關(guān)重要的。VBA 作為一種新一代的標(biāo)準(zhǔn)宏語(yǔ)言,具有上述跨越多種應(yīng)用軟件并且具有控制應(yīng)用軟件對(duì)象的能力,使得程序設(shè)計(jì)人員僅需學(xué)習(xí)一種統(tǒng)一的標(biāo)準(zhǔn)宏語(yǔ)言,就可以轉(zhuǎn)換到特定的應(yīng)用軟件上去,程序設(shè)計(jì)人員在編程和調(diào)試代碼時(shí)所看到的是相同的用戶(hù)界面,而且VBA 與原應(yīng)用軟件的宏語(yǔ)言相兼容,以保障用戶(hù)在代碼和工作上的投資。
有了VBA 以后,多種應(yīng)用程序共用一種宏語(yǔ)言,節(jié)省了程序人員的學(xué)習(xí)時(shí)間,提高了不同應(yīng)用軟件間的相互開(kāi)發(fā)和調(diào)用能力。 在Office 2000 中,宏語(yǔ)言VBA 適用于所有應(yīng)用程序,包括Word 、Excel、PowerPoint、Access、Outlook 以及Project。
在Office 97 的各應(yīng)用程序中,新增了Visual Basic 編輯器。這樣,用戶(hù)無(wú)論是在Excel 中,還是在Word 中以至是在Access 中建立和管理VBA 都具有統(tǒng)一的方法和標(biāo)準(zhǔn)。
在介紹如何利用VBA 提高工作效率之前,首先介紹一些與VBA 有關(guān)的基礎(chǔ)知識(shí)。11.1.1 VB 與VBA VBA 是基于Visual Basic 發(fā)展而來(lái)的,它們具有相似的語(yǔ)言結(jié)構(gòu)。
Visual Basic 是Microsoft 的主要圖形界面開(kāi)發(fā)工具,VBA 5.0 (亦即VBA 97)則是Visual Basic 5.0 的子集。Visual Basic 是由Basic 發(fā)展而來(lái)的第四代語(yǔ)言。
Visual Basic 作為一套獨(dú)立的 Windows 系統(tǒng)開(kāi)發(fā)工具,可用于開(kāi)發(fā)Windows 環(huán)境下的各類(lèi)應(yīng)用程序,是一種可視化的、面向?qū)ο蟮摹⒉捎檬录?qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì)語(yǔ)言。它具有高效率、簡(jiǎn)單易學(xué)及功能強(qiáng)大的特點(diǎn)。
VB 的程序語(yǔ)言簡(jiǎn)單、便捷,利用其事件驅(qū)動(dòng)的編程機(jī)制,新穎易用的可視化設(shè)計(jì)工具,并使用Windows 應(yīng)用程序接口(API)函數(shù),采用動(dòng)態(tài)鏈接庫(kù)(DLL)、動(dòng)態(tài)數(shù)據(jù)交換(DDE)、對(duì)象的鏈接與嵌入(OLE)以及開(kāi)放式數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)(ODBC)等技術(shù),可以高效、快速地編制出 Windows 環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。 Visual Basic 程序很大一部分以可視(Visual)形式實(shí)現(xiàn),這意味著在設(shè)計(jì)階段就可以看到程序運(yùn)行的屏幕畫(huà)面,用戶(hù)可以在設(shè)計(jì)時(shí)能夠方便地改動(dòng)畫(huà)面圖像、大小、顏色等,直到滿(mǎn)意為止。
VB 的用戶(hù)可以是缺乏Windows 及C 語(yǔ)言開(kāi)發(fā)經(jīng)驗(yàn)的專(zhuān)業(yè)軟件人員,也可以是具有一定Windows 開(kāi)發(fā)經(jīng)驗(yàn)的專(zhuān)業(yè)人員,VB 的可視化編程方法使得原來(lái)繁瑣枯燥、令人生畏的Windows 應(yīng)用程序設(shè)計(jì)變得輕松自如、妙趣橫生。以往的Windows 應(yīng)用程序開(kāi)發(fā)工具在設(shè)計(jì)圖形用戶(hù)界面時(shí),都是采用編程的方法,并伴隨大量的計(jì)算任務(wù),一個(gè)大型應(yīng)用程序約有90%的程序代碼用來(lái)處理用戶(hù)界面,而且在程序設(shè)計(jì)過(guò)程中不能看到界面顯示的效果,只有在程序執(zhí)行時(shí)才能觀察到,如果界面效果不佳,還需要回到程序中去修改。
Visual Basic 提供了新穎的可視化設(shè)計(jì)工具,巧妙地將Windows 界面設(shè)計(jì)的復(fù)雜性封裝起來(lái),程序開(kāi)發(fā)人員不必再為界面設(shè)計(jì)而編寫(xiě)大量程序代碼,僅需采用現(xiàn)有工具按設(shè)計(jì)者要求的布局,在屏幕上畫(huà)出所需界面,并為各圖形對(duì)象設(shè)置屬性即可,VB 自動(dòng)產(chǎn)生界面設(shè)計(jì)代碼,這樣便將事先編制好的控件可視地連接到一起,構(gòu)成一個(gè)隨時(shí)可調(diào)整的界面。 VBA 不但繼承了VB 的開(kāi)發(fā)機(jī)制,而且VBA 還具有與VB 相似的語(yǔ)言結(jié)構(gòu),它們的集成開(kāi)發(fā)環(huán)境IDE(Intergrated Development Environment)也幾乎相同。
但是,經(jīng)過(guò)優(yōu)化,VBA 專(zhuān)門(mén)用于Office 的各應(yīng)用程序。VB 可運(yùn)行直接來(lái)自Windows 95 或NT 桌面上的應(yīng)用程序,而VBA 的項(xiàng)目(Project)僅由使用VBA 的Excel、Word、PowerPoint 等稱(chēng)為宿主(Host)的Office 應(yīng)用程序(Application)來(lái)調(diào)用。
11.1.2 WordBasic 和 Visual Basic 在 Word 中,為完成具體的任務(wù),所用的是WordBasic 命令。 WordBasic 是從VBA 擴(kuò)展而來(lái)的一種專(zhuān)用于處理Word 自動(dòng)功能的語(yǔ)言,下面介紹它們?cè)诟拍钌系膮^(qū)別和它們的宏的相互轉(zhuǎn)換。
11.1.2.1 WordBasic 和 Visual 。
VBA是Visual Basic for Application的簡(jiǎn)寫(xiě),它以VB語(yǔ)言為基礎(chǔ),經(jīng)過(guò)修改并運(yùn)行在Microsoft Office的應(yīng)用程序,如Excel,Word中,它是不能像VB一樣能生成可執(zhí)行程序的。
也就是說(shuō),VBA程序只能依靠office平臺(tái)而運(yùn)行。但VBA編程卻和VB編程幾乎沒(méi)有什么兩種,它們都是面向?qū)ο蟮某绦蛟O(shè)計(jì),有相同的算法和語(yǔ)法,只要你會(huì)VB,甚至只要了解最簡(jiǎn)單的Basic語(yǔ)言的語(yǔ)法,就可以進(jìn)行VBA編程,在office平臺(tái)解決問(wèn)題。
你看了《VBA編程簡(jiǎn)化Excel操作的兩個(gè)實(shí)例》你就知道VBA編程有多少的簡(jiǎn)單和有趣了。
本書(shū)在安排內(nèi)容時(shí),充分考慮到大多數(shù)初學(xué)者幾乎沒(méi)有編程基礎(chǔ)的實(shí)際情況,在文字表述方面盡量避開(kāi)專(zhuān)業(yè)術(shù)語(yǔ),用通俗易懂的語(yǔ)言,教讀者如何學(xué)習(xí)Excel VBA。為了方便學(xué)習(xí)和理解,本書(shū)附贈(zèng)光盤(pán)中還配有原聲視頻演示,讀者可以在看書(shū)的同時(shí)打開(kāi)視頻文件參照學(xué)習(xí)。
本書(shū)適合想提高辦公效率的公司職員,從事會(huì)計(jì)、審計(jì)、統(tǒng)計(jì)等工作的人員,以及財(cái)經(jīng)專(zhuān)業(yè)的高校師生閱讀,還可以作為社會(huì)相關(guān)培訓(xùn)的教材。
去百度文庫(kù),查看完整內(nèi)容>
內(nèi)容來(lái)自用戶(hù):靜待花開(kāi)
EXCEL VBA常用代碼解析
Range對(duì)象是Excel應(yīng)用程序中最常用的對(duì)象,一個(gè)Range對(duì)象代表一個(gè)單元格、一行、一列、包含一個(gè)或者更多單元格區(qū)域(可以是連續(xù)的單元格,也可以是不連續(xù)的單元格)中選定的單元格,甚至是多個(gè)工作表上的一組單元格,在操作Excel內(nèi)的任何區(qū)域之前都需要將其表示為一個(gè)Range對(duì)象,然后使用該Range對(duì)象的方法和屬性。
▲001單元格的引用方法
在VBA中經(jīng)常需要引用單元格或單元格區(qū)域區(qū)域,主要有以下幾種方法。
001-1使用Range屬性
VBA中可以使用Range屬性返回單元格或單元格區(qū)域,如下面的代碼所示。
Sub RngSelect()
Sheet1.Range("A3:F6,B1:C5").Select
End Sub
代碼解析:
RangeSelect過(guò)程使用Select方法選中A3:F6,B1:C5單元格區(qū)域。
Range屬性返回一個(gè)Range對(duì)象,該對(duì)象代表一個(gè)單元格或單元格區(qū)域,語(yǔ)法如下:
Range(Cell1,Cell2)
參數(shù)Cell1是必需的,必須為A1樣式引用的宏語(yǔ)言,可包括區(qū)域操作符(冒號(hào))、相交區(qū)域操作符(空格)或合并區(qū)域操作符(逗號(hào))。也可包括美元符號(hào)(即絕對(duì)地址,如“$A$1”)??稍趨^(qū)域中任一部分使用局部定義名稱(chēng),如Range("B2:LastCell"),其中LastCell為已定義的單元格區(qū)域名稱(chēng)。
參數(shù)Cell2是可選的,區(qū)域左上角和右下角的單元格。
運(yùn)行RangeSelect過(guò)程,選中A3:F6,B1:C5單元格區(qū)域。
Next參數(shù)其中參數(shù)參數(shù)參數(shù)MsgBox "第End If參數(shù)If Not Rng Is Nothing Thenexpression.FindPrevious(A
VBA是Visual Basic for Application的簡(jiǎn)寫(xiě),它以VB語(yǔ)言為基礎(chǔ),經(jīng)過(guò)修改并運(yùn)行在Microsoft Office的應(yīng)用程序,如Excel,Word中,它是不能像VB一樣能生成可執(zhí)行程序的。
也就是說(shuō),VBA程序只能依靠office平臺(tái)而運(yùn)行。
但VBA編程卻和VB編程幾乎沒(méi)有什么兩種,它們都是面向?qū)ο蟮某绦蛟O(shè)計(jì),有相同的算法和語(yǔ)法,只要你會(huì)VB,甚至只要了解最簡(jiǎn)單的Basic語(yǔ)言的語(yǔ)法,就可以進(jìn)行VBA編程,在office平臺(tái)解決問(wèn)題。
你看了《VBA編程簡(jiǎn)化Excel操作的兩個(gè)實(shí)例》
你就知道VBA編程有多少的簡(jiǎn)單和有趣了。
VBA是什么 直到90年代早期,使應(yīng)用程序自動(dòng)化還是充滿(mǎn)挑戰(zhàn)性的領(lǐng)域.對(duì)每個(gè)需要自動(dòng)化的應(yīng)用程序,人們不得不學(xué)習(xí)一種不同的自動(dòng)化語(yǔ)言.例如:可以用EXCEL的宏語(yǔ)言來(lái)使EXCEL自動(dòng)化,使用WORD BASIC使WORD自動(dòng)化,等等.微軟決定讓它開(kāi)發(fā)出來(lái)的應(yīng)用程序共享一種通用的自動(dòng)化語(yǔ)言--------Visual Basic For Application(VBA),可以認(rèn)為VBA是非常流行的應(yīng)用程序開(kāi)發(fā)語(yǔ)言VISUAL BASIC 的子集.實(shí)際上VBA是寄生于VB應(yīng)用程序的版本.VBA和VB的區(qū)別包括如下幾個(gè)方面: 1. VB是設(shè)計(jì)用于創(chuàng)建標(biāo)準(zhǔn)的應(yīng)用程序,而VBA是使已有的應(yīng)用程序(EXCEL等)自動(dòng)化 2. VB具有自己的開(kāi)發(fā)環(huán)境,而VBA必須寄生于已有的應(yīng)用程序. 3. 要運(yùn)行VB開(kāi)發(fā)的應(yīng)用程序,用戶(hù)不必安裝VB,因?yàn)閂B開(kāi)發(fā)出的應(yīng)用程序是可執(zhí)行文件(*.EXE),而VBA開(kāi)發(fā)的程序必須依賴(lài)于它的父應(yīng)用程序,例如EXCEL. 盡管存在這些不同,VBA和VB在結(jié)構(gòu)上仍然十分相似.事實(shí)上,如果你已經(jīng)了解了VB,會(huì)發(fā)現(xiàn)學(xué)習(xí)VBA非常快.相應(yīng)的,學(xué)完VBA會(huì)給學(xué)習(xí)VB打下堅(jiān)實(shí)的基礎(chǔ).而且,當(dāng)學(xué)會(huì)在EXCEL中用VBA創(chuàng)建解決方案后,即已具備在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA創(chuàng)建解決方案的大部分知識(shí). * VBA一個(gè)關(guān)鍵特征是你所學(xué)的知識(shí)在微軟的一些產(chǎn)品中可以相互轉(zhuǎn)化. * VBA可以稱(chēng)作EXCEL的“遙控器”. VBA究竟是什么?更確切地講,它是一種自動(dòng)化語(yǔ)言,它可以使常用的程序自動(dòng)化,可以創(chuàng)建自定義的解決方案. 此外,如果你愿意,還可以將EXCEL用做開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)應(yīng)用程序. Office取得巨大成功的一個(gè)重要原因就是VBA,使用VBA可以完成很多事情,基于Excel、Word的VBA小程序不計(jì)其數(shù)。
VBA程序員很多是業(yè)余程序員,正因?yàn)闃I(yè)余,解決的卻是工作中需要解決的問(wèn)題;所以,VBA程序大多都是只是在部門(mén)內(nèi)部或個(gè)人使用的小工具。 集成了VBA的其他應(yīng)用程序也很多,但真正能為程序增色的不多。
大多數(shù)人看到了VBA可以自動(dòng)化一個(gè)程序,可以擴(kuò)展已有程序,但沒(méi)有看到在Office中,VBA代碼可以是錄制的,而不是寫(xiě)出來(lái)的,帶來(lái)的好處是,學(xué)習(xí)曲線(xiàn)變得非常緩。如果沒(méi)有宏錄制功能,要熟悉某個(gè)Office組件的對(duì)象模型,絕非一日之功。
以ArcGIS為例,ArcGIS擴(kuò)展必須使用ArcObject,不管是使用VBA也罷,VB也罷,還是C++也罷。但同時(shí),ArcObject的學(xué)習(xí)不是一天兩天可以搞定,對(duì)于業(yè)余程序員,要使用VBA來(lái)擴(kuò)展ArcGIS,幾乎沒(méi)有可能;專(zhuān)業(yè)程序員又不屑使用VBA;而對(duì)于公司,如果要基于ArcObject來(lái)擴(kuò)展ArcGIS,選擇VBA意味著源碼的保護(hù)很困難。
所以,ArcGIS的VBA就如同雞肋。 不過(guò),學(xué)習(xí)AO的時(shí)候,使用VBA比使用其他語(yǔ)言要容易一些,寫(xiě)幾行代碼,然后直接運(yùn)行測(cè)試結(jié)果,這種交互式的學(xué)習(xí)應(yīng)該是最好的學(xué)習(xí)方法。
ArcGIS以及AO與Office相比,還有一個(gè)很大的差別,就是ArcGIS缺乏中等粒度的對(duì)象,例如Word和Excel的Range對(duì)象。對(duì)于Office開(kāi)發(fā),可以在對(duì)底層小粒度對(duì)象一無(wú)所知的狀況下做很多事情,這就是抽象的力量。
常人可以處理的復(fù)雜度是有限的,面對(duì)數(shù)十個(gè)對(duì)象和幾百個(gè)對(duì)象,后者需要付出的努力不是10倍,而是數(shù)十倍或更多,因?yàn)樵趯W(xué)習(xí)過(guò)程中,必須可以把這些對(duì)象在大腦中很好的組織,以控制其復(fù)雜度。 Visual Basic for Applications(簡(jiǎn)稱(chēng)VBA)是新一代標(biāo)準(zhǔn)宏語(yǔ)言,是基于Visual Basic for Windows 發(fā)展而來(lái)的。
它與傳統(tǒng)的宏語(yǔ)言不同,傳統(tǒng)的宏語(yǔ)言不具有高級(jí)語(yǔ)言的特征,沒(méi)有面向?qū)ο蟮某绦蛟O(shè)計(jì)概念和方法。而VBA 提供了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,提供了相當(dāng)完整的程序設(shè)計(jì)語(yǔ)言。
VBA 易于學(xué)習(xí)掌握,可以使用宏記錄器記錄用戶(hù)的各種操作并將其轉(zhuǎn)換為VBA 程序代碼。這樣用戶(hù)可以容易地將日常工作轉(zhuǎn)換為VBA 程序代碼,使工作自動(dòng)化。
因此,對(duì)于在工作中需要經(jīng)常使用Office 套裝軟件的用戶(hù),學(xué)用VBA 有助于使工作自動(dòng)化,提高工作效率。另外,由于VBA 可以直接應(yīng)用Office 套裝軟件的各項(xiàng)強(qiáng)大功能,所以對(duì)于程序設(shè)計(jì)人員的程序設(shè)計(jì)和開(kāi)發(fā)更加方便快捷。
編輯本段VBA 基礎(chǔ) Visual Basic 的應(yīng)用程序版(VBA)是Microsoft 公司長(zhǎng)期追求的目標(biāo),使可編程應(yīng)用軟件得到完美的實(shí)現(xiàn),它作為一種通用的宏語(yǔ)言可被所有的Microsoft 可編程應(yīng)用軟件所共享。在沒(méi)有VBA 以前,一些應(yīng)用軟件如Excel、Word、Access、Project 等都采用自己的宏語(yǔ)言供用戶(hù)開(kāi)發(fā)使用,但每種宏語(yǔ)言都是獨(dú)立的,需要用戶(hù)專(zhuān)門(mén)去學(xué)習(xí),它們之間互不兼容,使得應(yīng)用軟件之間不能在程序上互聯(lián)。
擁有一種可跨越多個(gè)應(yīng)用軟件,使各應(yīng)用軟件產(chǎn)品具有高效、靈活且一致性的開(kāi)發(fā)工具是至關(guān)重要的。VBA 作為一種新一代的標(biāo)準(zhǔn)宏語(yǔ)言,具有上述跨越多種應(yīng)用軟件并且具有控制應(yīng)用軟件對(duì)象的能力,使得程序設(shè)計(jì)人員僅需學(xué)習(xí)一種統(tǒng)一的標(biāo)準(zhǔn)宏語(yǔ)言,就可以轉(zhuǎn)換到特定的應(yīng)用軟件上去,程序設(shè)計(jì)人員在編程和調(diào)試代碼時(shí)所看到的是相同的用戶(hù)界面,而且VBA 與原應(yīng)用軟件的宏語(yǔ)言相兼容,以保障用戶(hù)在代碼和工作上的投資。
有了VBA 以后,多種應(yīng)用程序共用一種宏語(yǔ)言,節(jié)省了程序人員的學(xué)習(xí)時(shí)間,提高了不同應(yīng)用軟件間的相。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥(niǎo). 頁(yè)面生成時(shí)間:4.107秒