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