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