本書在安排內(nèi)容時,充分考慮到大多數(shù)初學(xué)者幾乎沒有編程基礎(chǔ)的實際情況,在文字表述方面盡量避開專業(yè)術(shù)語,用通俗易懂的語言,教讀者如何學(xué)習(xí)Excel VBA。為了方便學(xué)習(xí)和理解,本書附贈光盤中還配有原聲視頻演示,讀者可以在看書的同時打開視頻文件參照學(xué)習(xí)。
本書適合想提高辦公效率的公司職員,從事會計、審計、統(tǒng)計等工作的人員,以及財經(jīng)專業(yè)的高校師生閱讀,還可以作為社會相關(guān)培訓(xùn)的教材。
Visual Basic for Applications(簡稱VBA)是新一代標(biāo)準(zhǔn)宏語言,是基于Visual Basic for Windows 發(fā)展而來的。
它與傳統(tǒng)的宏語言不同,傳統(tǒng)的宏語言不具有高級語言的特征,沒有面向?qū)ο蟮某绦蛟O(shè)計概念和方法。而VBA 提供了面向?qū)ο蟮某绦蛟O(shè)計方法,提供了相當(dāng)完整的程序設(shè)計語言。
VBA 易于學(xué)習(xí)掌握,可以使用宏記錄器記錄用戶的各種操作并將其轉(zhuǎn)換為VBA 程序代碼。這樣用戶可以容易地將日常工作轉(zhuǎn)換為VBA 程序代碼,使工作自動化。
因此,對于在工作中需要經(jīng)常使用Office 套裝軟件的用戶,學(xué)用VBA 有助于使工作自動化,提高工作效率。另外,由于VBA 可以直接應(yīng)用Office 套裝軟件的各項強(qiáng)大功能,所以對于程序設(shè)計人員的程序設(shè)計和開發(fā)更加方便快捷。
11.1 VBA 基礎(chǔ) Visual Basic 的應(yīng)用程序版(VBA)是Microsoft 公司長期追求的目標(biāo),使可編程應(yīng)用軟件得到完美的實現(xiàn),它作為一種通用的宏語言可被所有的Microsoft 可編程應(yīng)用軟件所共享。在沒有VBA 以前,一些應(yīng)用軟件如Excel、Word、Access、Project 等都采用自己的宏語言供用戶開發(fā)使用,但每種宏語言都是獨立的,需要用戶專門去學(xué)習(xí),它們之間互不兼容,使得應(yīng)用軟件之間不能在程序上互聯(lián)。
擁有一種可跨越多個應(yīng)用軟件,使各應(yīng)用軟件產(chǎn)品具有高效、靈活且一致性的開發(fā)工具是至關(guān)重要的。VBA 作為一種新一代的標(biāo)準(zhǔn)宏語言,具有上述跨越多種應(yīng)用軟件并且具有控制應(yīng)用軟件對象的能力,使得程序設(shè)計人員僅需學(xué)習(xí)一種統(tǒng)一的標(biāo)準(zhǔn)宏語言,就可以轉(zhuǎn)換到特定的應(yīng)用軟件上去,程序設(shè)計人員在編程和調(diào)試代碼時所看到的是相同的用戶界面,而且VBA 與原應(yīng)用軟件的宏語言相兼容,以保障用戶在代碼和工作上的投資。
有了VBA 以后,多種應(yīng)用程序共用一種宏語言,節(jié)省了程序人員的學(xué)習(xí)時間,提高了不同應(yīng)用軟件間的相互開發(fā)和調(diào)用能力。 在Office 2000 中,宏語言VBA 適用于所有應(yīng)用程序,包括Word 、Excel、PowerPoint、Access、Outlook 以及Project。
在Office 97 的各應(yīng)用程序中,新增了Visual Basic 編輯器。這樣,用戶無論是在Excel 中,還是在Word 中以至是在Access 中建立和管理VBA 都具有統(tǒng)一的方法和標(biāo)準(zhǔn)。
在介紹如何利用VBA 提高工作效率之前,首先介紹一些與VBA 有關(guān)的基礎(chǔ)知識。11.1.1 VB 與VBA VBA 是基于Visual Basic 發(fā)展而來的,它們具有相似的語言結(jié)構(gòu)。
Visual Basic 是Microsoft 的主要圖形界面開發(fā)工具,VBA 5.0 (亦即VBA 97)則是Visual Basic 5.0 的子集。Visual Basic 是由Basic 發(fā)展而來的第四代語言。
Visual Basic 作為一套獨立的 Windows 系統(tǒng)開發(fā)工具,可用于開發(fā)Windows 環(huán)境下的各類應(yīng)用程序,是一種可視化的、面向?qū)ο蟮摹⒉捎檬录?qū)動方式的結(jié)構(gòu)化高級程序設(shè)計語言。它具有高效率、簡單易學(xué)及功能強(qiáng)大的特點。
VB 的程序語言簡單、便捷,利用其事件驅(qū)動的編程機(jī)制,新穎易用的可視化設(shè)計工具,并使用Windows 應(yīng)用程序接口(API)函數(shù),采用動態(tài)鏈接庫(DLL)、動態(tài)數(shù)據(jù)交換(DDE)、對象的鏈接與嵌入(OLE)以及開放式數(shù)據(jù)庫訪問(ODBC)等技術(shù),可以高效、快速地編制出 Windows 環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。 Visual Basic 程序很大一部分以可視(Visual)形式實現(xiàn),這意味著在設(shè)計階段就可以看到程序運行的屏幕畫面,用戶可以在設(shè)計時能夠方便地改動畫面圖像、大小、顏色等,直到滿意為止。
VB 的用戶可以是缺乏Windows 及C 語言開發(fā)經(jīng)驗的專業(yè)軟件人員,也可以是具有一定Windows 開發(fā)經(jīng)驗的專業(yè)人員,VB 的可視化編程方法使得原來繁瑣枯燥、令人生畏的Windows 應(yīng)用程序設(shè)計變得輕松自如、妙趣橫生。以往的Windows 應(yīng)用程序開發(fā)工具在設(shè)計圖形用戶界面時,都是采用編程的方法,并伴隨大量的計算任務(wù),一個大型應(yīng)用程序約有90%的程序代碼用來處理用戶界面,而且在程序設(shè)計過程中不能看到界面顯示的效果,只有在程序執(zhí)行時才能觀察到,如果界面效果不佳,還需要回到程序中去修改。
Visual Basic 提供了新穎的可視化設(shè)計工具,巧妙地將Windows 界面設(shè)計的復(fù)雜性封裝起來,程序開發(fā)人員不必再為界面設(shè)計而編寫大量程序代碼,僅需采用現(xiàn)有工具按設(shè)計者要求的布局,在屏幕上畫出所需界面,并為各圖形對象設(shè)置屬性即可,VB 自動產(chǎn)生界面設(shè)計代碼,這樣便將事先編制好的控件可視地連接到一起,構(gòu)成一個隨時可調(diào)整的界面。 VBA 不但繼承了VB 的開發(fā)機(jī)制,而且VBA 還具有與VB 相似的語言結(jié)構(gòu),它們的集成開發(fā)環(huán)境IDE(Intergrated Development Environment)也幾乎相同。
但是,經(jīng)過優(yōu)化,VBA 專門用于Office 的各應(yīng)用程序。VB 可運行直接來自Windows 95 或NT 桌面上的應(yīng)用程序,而VBA 的項目(Project)僅由使用VBA 的Excel、Word、PowerPoint 等稱為宿主(Host)的Office 應(yīng)用程序(Application)來調(diào)用。
11.1.2 WordBasic 和 Visual Basic 在 Word 中,為完成具體的任務(wù),所用的是WordBasic 命令。 WordBasic 是從VBA 擴(kuò)展而來的一種專用于處理Word 自動功能的語言,下面介紹它們在概念上的區(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") = "測試數(shù)據(jù)" '測試用的,對你所提問沒有沒有關(guān)系
xlSheet.Range("b1:b15").Merge '測試用的,對你所提問沒有沒有關(guān)系,合并單元格(B1;b15)
xlSheet.Range("b1:b15").UnMerge '分解單元格,原內(nèi)容自動填充到分解后的第一單元格.這句也是你問題的答案,不過你要根據(jù)你的具體情況改變“("b1:b15")”
xlSheet.Range("c:c").Merge '測試用的,對你所提問沒有沒有關(guān)系
xlSheet.Range("c:c").UnMerge '這句是你的第二問的答案。具體含義是拆分第C列,這句也要根據(jù)你的具體情況改變“("c:c")”,既把引號內(nèi)的括號內(nèi)的c改成其他英文字母。
Set xlBook = Nothing
xlApp.Quit
End Sub
備注:我用的excel2007,excel2003應(yīng)該一樣。給你說一個小技巧,你用VBA技術(shù)時,你可以先錄制一個宏,然后在宏的基礎(chǔ)上和你的具體需要更改你錄制的宏代碼,然后復(fù)制到你寫的代碼中就可以了,不過前提是你知道一些VBA基礎(chǔ)知識。
聲明:本網(wǎng)站尊重并保護(hù)知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時間:3.352秒