本書(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)的教材。
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í)掌握,可以使用宏記錄器記錄用戶的各種操作并將其轉(zhuǎn)換為VBA 程序代碼。這樣用戶可以容易地將日常工作轉(zhuǎn)換為VBA 程序代碼,使工作自動(dòng)化。
因此,對(duì)于在工作中需要經(jīng)常使用Office 套裝軟件的用戶,學(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ǔ)言供用戶開(kāi)發(fā)使用,但每種宏語(yǔ)言都是獨(dú)立的,需要用戶專(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í)所看到的是相同的用戶界面,而且VBA 與原應(yīng)用軟件的宏語(yǔ)言相兼容,以保障用戶在代碼和工作上的投資。
有了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 編輯器。這樣,用戶無(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ù)訪問(wèn)(ODBC)等技術(shù),可以高效、快速地編制出 Windows 環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。 Visual Basic 程序很大一部分以可視(Visual)形式實(shí)現(xiàn),這意味著在設(shè)計(jì)階段就可以看到程序運(yùn)行的屏幕畫(huà)面,用戶可以在設(shè)計(jì)時(shí)能夠方便地改動(dòng)畫(huà)面圖像、大小、顏色等,直到滿意為止。
VB 的用戶可以是缺乏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ì)圖形用戶界面時(shí),都是采用編程的方法,并伴隨大量的計(jì)算任務(wù),一個(gè)大型應(yīng)用程序約有90%的程序代碼用來(lái)處理用戶界面,而且在程序設(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 。
Private Sub Command1_Click()
Dim strChar As String
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
xlApp.Visible = True
Set xlSheet = xlBook.Worksheets(1)
xlSheet.Activate
xlSheet.Range("b1") = "測(cè)試數(shù)據(jù)" '測(cè)試用的,對(duì)你所提問(wèn)沒(méi)有沒(méi)有關(guān)系
xlSheet.Range("b1:b15").Merge '測(cè)試用的,對(duì)你所提問(wèn)沒(méi)有沒(méi)有關(guān)系,合并單元格(B1;b15)
xlSheet.Range("b1:b15").UnMerge '分解單元格,原內(nèi)容自動(dòng)填充到分解后的第一單元格.這句也是你問(wèn)題的答案,不過(guò)你要根據(jù)你的具體情況改變“("b1:b15")”
xlSheet.Range("c:c").Merge '測(cè)試用的,對(duì)你所提問(wèn)沒(méi)有沒(méi)有關(guān)系
xlSheet.Range("c:c").UnMerge '這句是你的第二問(wèn)的答案。具體含義是拆分第C列,這句也要根據(jù)你的具體情況改變“("c:c")”,既把引號(hào)內(nèi)的括號(hào)內(nèi)的c改成其他英文字母。
Set xlBook = Nothing
xlApp.Quit
End Sub
備注:我用的excel2007,excel2003應(yīng)該一樣。給你說(shuō)一個(gè)小技巧,你用VBA技術(shù)時(shí),你可以先錄制一個(gè)宏,然后在宏的基礎(chǔ)上和你的具體需要更改你錄制的宏代碼,然后復(fù)制到你寫(xiě)的代碼中就可以了,不過(guò)前提是你知道一些VBA基礎(chǔ)知識(shí)。
聲明:本網(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í)間:3.352秒