ExcelVBA程式開發自學寶典

ExcelVBA程式開發自學寶典

ExcelVBA程式開發自學寶典從一個專業程式(VBA外掛程式)的套用開始,逐步分析VBA程式的優勢,以及VBA的歷史、概念、編輯器、語法規則、數組、函式、檔案目錄與磁碟管理等VBA語言的基礎。通過60%的篇幅講述VBA的理論與語法基礎,其中穿插了程式編寫常規則及代碼最佳化之道,讓讀者在編寫代碼解決日常工作的基礎上,懂得如何提升代碼的執行效率與通用性。

基本信息

內容簡介

本書從一個專業程式(VBA外掛程式)的套用開始,逐步分析VBA程式的優勢,以及VBA的歷史、概念、編輯器、語法規則、數組、函式、檔案目錄與磁碟管理等VBA語言的基礎。然後講述三類程式的開發思路與語法,包括VBE專用程式、VB編寫的DLL外掛程式,以及工作簿中通用的載入宏程式。最後通過大型的Excel百寶箱外掛程式的設計來實踐程式開發理論,讓讀者對程式開發有進一步地認識,並實踐本書所闡述的程式開發思想。

本書通過60%的篇幅講述VBA的理論與語法基礎,其中穿插了程式編寫常規則及代碼最佳化之道,讓讀者在編寫代碼解決日常工作的基礎上,懂得如何提升代碼的執行效率與通用性。另外還涉及了大量的自定義函式,以及腳本語言、FileSystemObject、DOS語言在VBA中的套用等。最後利用40%的篇幅講述專業程式的理論基礎與開發思想,以及通過多個大型的外掛程式程式設計過程演示如何開發專業程式,以及對外掛程式程式應如何防錯及提速。

本書除講解VBA的理論以外,重點探討如何開發一個完整的大中型外掛程式程式,在程式開發中應如何防止錯誤、提升效率,以及確保程式的通用性。書中的所有程式都有完善的防錯機制,並通用於Excel 2003和Excel 2007。

前言

Excel是一款極優秀的表格設計與數據分析軟體。特別是它所集成的VBA語言可以對Excel程式進行二次開發,大大拓展了Excel的功能,使Excel不再局限於設計表格,而具有了程式改造、外掛程式開發與多任務批處理的功能。

本書目的

Excel VBA是一門強化、改造Excel的程式語言。利用VBA通常可以完成兩大類任務:解決自己的工作問題(強化)和開發通用軟體(改造)。而市場上大量的VBA書籍大都屬於前者,側重講述VBA基本語法及如何利用VBA處理一個具體的工作中的疑難問題,而對於開發通用型外掛程式來延伸Excel的通用功能這方面則少有涉及。本書旨在彌補這種不足,在VBA理論的基礎之外重點闡述如何開發外掛程式,以適應一個群體的需求,而非僅僅處理個人的臨時性問題。

本書除60%的篇幅普及VBA相關的理論知識外,還對如何提升程式的通用性、防錯、提速等方面進行反覆的闡述與論證,通過大量的實例傳授程式的最佳化之道,及如何讓程式在新舊版本的Excel中都能準確無誤地執行。

另外,對於與VBA相關的其他邊緣性知識體系也做了系統的介紹,例如腳本語言WScript、檔案管理系統FileSystemObject、DOS磁碟管理系統與API函式在VBA中的套用。通過本書,讀者可以對VBA有相當完善的認識與理解,並建立自己的程式開發思想,具備開發大中型專業程式的能力。

本書結構

《Excel VBA程式開發自學寶典》是一本講述VBA語言理論基礎及開發VBA程式的書,全書共32章,分以下五個部分:

入門篇:VBA優勢、功能與概念

進階篇:VBA語法、過程與事件

登堂篇:VBA數組、窗體與控制項

入室篇:檔案管理、選單、API、VBE與載入項

攀峰篇:開發通用外掛程式

本書特點

相對於同類書籍,本書在內容編排上具有以下特點:

1. 除對VBA語言的基礎語法與對象操作解說外,重點展示如何開發一個獨立完善的外掛程式。而非僅僅局限在通過VBA解決一個臨時性工作問題,通過本書,你完全可以實現編寫自己的商業性軟體,也可以開發一個完善的管理系統。

2. 本書程式非常注重通用性,所有程式代碼都通用於Excel 2003和Excel 2007。不管用戶使用的Excel 2003還是Excel 2007,都可以正常執行書中所有代碼。

3. 本書對代碼的執行速度有較多的筆墨敘述,而且總結了13條代碼最佳化的規則。

4. 本書除VBA基本語法的教學外,另一個重點是如何開發外掛程式。相對於普通的宏過程,開發外掛程式的難度更高,通用性、防錯性等要求都更嚴謹。本書通過對大型外掛程式的程式思想、思路以及步驟進行詳述,從而促使讀者對VBA程式語言的理論有更深入的認識與運用。

5. 詳述利用vb 6.0企業版開發具有更高安全性的COM載入項,讀者可以藉此開發自己的商業軟體。

6. 除VBA外,本書還包括了WScript、FileSystemObject、DOS、API等語言的套用,將這些語言配合VBA可以擴充VBA的功能,完成更多的工作需求。

光碟檔案

本書的隨書光碟包括書中所有實例檔案的代碼,以及作者精心開發的大型外掛程式“Excel百寶箱7.0”原始碼。

本書以Excel 2007的界面進行敘述,但隨書光碟中的案例區分Excel 2003和Excel 2007兩個版本。不管是Excel 2003用戶還是Excel 2007用戶都可以正常打開檔案,完全不會因版本不同而給學習帶來障礙,也不需要安裝轉換軟體。

另外,本書還配備視頻教材,包括開發提示性輸入工具箱、開發公農曆日期輸入器、工作簿拆分及彩蛋設計、開發通用二級選單外掛程式、監控單元格歷史記錄、設計計畫任務嚮導、用VB開發自動化載入項等7集,同時配備了7集教材中所用到的代碼。將視頻教材與Excel檔案搭配會有更好的學習效果。

適合讀者群

本書對VBA的基礎理論有比較詳盡的介紹,而對VBA的高級知識——數組、類模組、API、VBE組件操作與外掛程式設計也有大量的理論闡述與案例演示。

本書適應的人群包括三類:

一是VBA入門者,可以通過本書系統地學習VBA知識;

二是已有VBA基礎,但需要擴充知識面,讓自己的程式具有更好的通用性、糾錯性及更高的執行效率者,本書對程式的最佳化、糾錯等方面進行了大量的論證;

三是VBA程式愛好者,可以編寫過程來解決自己工作中的問題,但想開發更專業的商業軟體者。本書對開發開源的商業軟體進行了介紹,包括自動化載入項和COM載入項。

本書作者

本書主要由作者羅剛君編寫,作者是多個大型論壇的版主,有著豐富的VBA程式設計經驗。Excel百寶箱是其標誌性作品,包括100個增強性Excel外掛程式工具。讀者可以從光碟中獲取該工具。

作者專門創辦了一個售後服務論壇,讀者對本書有任何疑問或者建議,都可以登錄以下網址參與交流。

另外參與本書寫作的還有龔丹李妍妍、張理功、劉星辰張文麗、鄭亞梅、周禮英、劉小琴、楊斌、楊陽、黎玲、陳小春、張宏展、章蘭新、吳旭東等,在此一併表示感謝。

編著者

2009-7-21

目錄

第01章 從Excel外掛程式認識VBA

1.1 從身份證號獲取個人信息 1

1.1.1 內置公式法 1

1.1.2 自定義函式法 2

1.1.3 外掛程式法 2

1.1.4 淺談VBA優勢 3

1.2 外掛程式特點及如何發揮外掛程式的優勢 4

1.2.1 Excel外掛程式的特點 4

1.2.2 Excel外掛程式的優勢與限制 6

1.2.3 如何發揮外掛程式的優勢 6

1.2.4 開發Excel外掛程式的條件 6

1.2.5 本書架構 7

第 02章 VBA概述

2.1 VBA的發展史與優缺點 8

2.1.1 宏與VBA 8

2.1.2 VBA歷史與版本 9

2.1.3 VBA優、缺點 9

2.2 VBA能做什麼 10

2.2.1 VBA用途 10

2.2.2 VBA主要用戶 11

2.3 VBA的安全性 12

2.3.1 VBA安全性 12

2.3.2 了解安全性對話框 12

2.3.3 讓自己的VBA程式暢通無阻 14

2.4 使用VBA幫助 16

2.4.1 利用幫助學習VBA語法 16

2.4.2 捕捉錯誤 17

第 03章 巧設VBA編輯器提升編程效率

3.1 認識VBE組件 21

3.1.1 訪問VBA開發環境 21

3.1.2 認識VBE的組件 22

3.1.3 VBE中不同代碼視窗的作用 27

3.2 VBE中選項設定 29

3.2.1 編輯器選項 29

3.2.2 編輯器格式選項 33

3.2.3 通用選項 33

3.2.4 VBA代碼保護 34

第 04章 VBA基本概念

4.1 理解VBA的對象、屬性與方法 36

4.1.1 什麼是對象 36

4.1.2 如何理解屬性 37

4.1.3 如何理解方法 38

4.1.4 判斷對象的屬性與方法 38

4.2 認識VBA的事件 39

4.2.1 什麼是事件 39

4.2.2 事件的分類及其用途 39

4.3 VBA的運算符 40

4.3.1 VBA中運算符的分類 40

4.3.2 算術運算符 40

4.3.3 比較運算符 41

4.3.4 邏輯運算符 41

4.3.5 運算符的優先順序 43

4.4 簡單的字元處理函式 43

4.4.1 字元串處理函式功能介紹 44

4.4.2StrComp:字元相似比較 44

4.4.3StrConv:字元串類型轉換 45

4.4.4 Format:格式化字元串 46

4.4.5lcase/UCase:大小寫轉換 46

4.4.6 String / Space:重複字元 46

4.4.7 Lset /RSet:字元串往左/右對齊 47

4.4.8instr:返回字元出現位置 47

4.4.9 Left/Mid/Right:從左、中、右取值 48

4.4.10ltrim/RTrim/ Trim:去除空格 48

4.4.11 Like:字元串相似度比較 49

第 05章 VBA數據類型與變數、常量

5.1 數據類型 50

5.1.1 為什麼要區分數據類型 50

5.1.2 認識VBA的數據類型 50

5.1.3 數據類型的聲明與轉換 52

5.2 常量與變數 54

5.2.1 常量的定義與用途 54

5.2.2 常量的聲明方式 54

5.2.3 常量的命名規則 55

5.2.4 變數的定義與用途 56

5.2.5 變數的類型與聲明 56

5.2.6 區分靜態變數與動態變數 57

5.2.7 變數的作用域與生命周期 58

5.2.8 認識對象變數 60

5.2.9 認識數組變數 61

第 06章 認識VBA過程及開發自定義函式

6.1 認識過程 62

6.1.1 過程的分類與調用方式 62

6.1.2 插入過程的方式 64

6.1.3 過程的命名規則 66

6.2 編寫Sub過程66

6.2.1 Sub過程的語法解析 66

6.2.2 Sub過程的執行流程 68

6.2.3 過程的遞歸 72

6.2.4 Sub過程實例演示 73

6.3 認識Function過程74

6.3.1 Function過程的特點 74

6.3.2 Function的語法解析 74

6.3.3 調用Function過程 75

6.4 關於過程的參數 76

6.4.1 Sub過程的參數及套用 76

6.4.2 Function過程的參數 78

6.5 開發自定義函式 79

6.5.1 開發不帶參數的Function過程 79

6.5.2 開發帶有一個參數的Function過程 80

6.5.3 開發帶有兩個參數的Function過程 83

6.5.4 開發帶有兩個可選參數的Function過程 84

6.5.5 開發帶有不確定參數的Function過程 86

6.5.6 開發具有三個參數其中第三個為可選的Function過程 89

6.6 編寫函式幫助 91

6.7 總結 96

第 07章 VBA的對象模型與對象表示法

7.1 VBA中的對象及結構 97

7.1.1 關於對象的相關概念 97

7.1.2 對象與對象集合 98

7.1.3 對象的層次:父對象與子對象 99

7.1.4 認識Excel所有對象 100

7.2 對象的表示法 101

7.2.1 對象的完整指定方式與簡寫 101

7.2.2 利用定義名稱獲取對象 101

7.2.3 利用集合索引號獲取對象 102

7.2.4 活動對象的簡化引用 103

7.2.5 利用With語句簡化對象引用 104

7.2.6 事件中的Me關鍵字 104

7.3 單元格的各種引用方式 106

7.3.1 Range("A1")方式引用單元格 106

7.3.2 Cells(1,1)方式引用單元格 109

7.3.3 [a1]方式引用單元格 110

7.3.4 Range("A1")、Cells(1,1)與[a1]比較 111

7.3.5 Selection與ActiveCell:當前選區與活動單元格112

7.3.6 Names:利用名稱引用單元格或區域 113

7.3.7UsedRange與CurrentRegion 115

7.3.8 SpecialCells:按條件引用區域 118

7.3.9 CurrentArray:引用數組區域 120

7.3.10 Resize:重置區域大小 120

7.3.11 Offset:根據偏移量引用區域 122

7.3.12 Union:單元格的合集 124

7.3.13 Intersect:單元格、區域的交集 126

7.3.14 End:引用源區域的區域尾端的單元格 128

第 08章 自動宏與Excel事件

8.1 讓宏自動執行 132

8.1.1 Auto自動宏 132

8.1.2 工作簿事件中的自動宏 133

8.1.3 利用滑鼠移動事件執行自動宏 133

8.2 詳談VBA的事件 134

8.2.1 事件的定義與分類 135

8.2.2 事件的層次與執行順序 135

8.2.3 事件的禁用與啟用 137

8.2.4 事件代碼的錄入方式 139

8.3 VBA有哪些事件 140

8.3.1 應用程式級別事件介紹 140

8.3.2 工作簿事件介紹 141

8.3.3 工作表事件介紹 142

8.3.4 事件的特例 142

第 09章 VBA程式常規則

9.1 代碼編寫規則 144

9.1.1 對代碼添加注釋 144

9.1.2 長代碼分行 147

9.1.3 代碼縮進對齊 149

9.1.4 聲明有意義的變數名稱 150

9.1.5 IF...end if類配對語句的錄入方式 151

9.1.6 錄入事件代碼的方式 151

9.1.7 借用自動列出程式錄入代碼 151

9.1.8 善用公共變數 152

9.1.9 將較大的過程分為多個再調用 153

9.1.10 減少過程參數 153

9.1.11 兼容Excel 2007和Excel 2003 153

9.2 最佳化代碼 154

9.2.1 強制聲明變數 154

9.2.2 善用常量 154

9.2.3 關閉螢幕更新 155

9.2.4 利用With減少對象讀取次數 155

9.2.5 利用變數減少對象讀取次數 157

9.2.6 善用帶$的字元串處理函式 157

9.2.7 善用循環中的步長減少循環次數 157

9.2.8 利用數組代替單元格對象 158

9.2.9 不重複調用自定義函式時不使用自定義函式 159

9.2.10 將不改變值或者屬性的語句放到循環語句外 160

9.2.11 利用長度計算判斷單元格是否非空 160

9.2.12 儘量調用內置功能 161

9.2.13 利用對象循環替代單元格循環 161

第 10章 常用語法剖析

10.1 輸入、輸出語句 163

10.1.1 Msgbox函式的功能及作用 163

10.1.2 Msgbox函式的語法 164

10.1.3 Msgbox函式的限制 168

10.1.4 利用WScript突破Msgbox限制 169

10.1.5 Debug.print 170

10.1.6 Inputbox函式的功能與作用 170

10.1.7 Inputbox函式的語法 171

10.1.8 借用Inputbox函式生成月曆 173

10.1.9 Inputbox函式的限制 175

10.1.10 利用Application.Inputbox方法替代Inputbox函式 175

10.1.11 Application.Inputbox語法詳解 176

10.2 條件判斷語句 179

10.2.1iif函式的語法與套用 179

10.2.2 IIF函式的限制 182

10.2.3 IF...Then...語句的語法詳解 183

10.2.4 IF...then...套用案例 183

10.2.5 IF...Then...Else...語法與套用 185

10.2.6 條件語句的嵌套套用 186

10.2.7Select Case語法詳解 189

10.2.8 Select Case與IF...Then...Else之比較 192

10.2.9 借用Choose函式簡化條件選擇 194

10.3 循環語句 196

10.3.1 For Next語句 196

10.3.2 利用循環獲取工作表目錄 202

10.3.3 For Each Next語法詳解 205

10.3.4 利用循環選擇區域中所有負數 206

10.3.5 利用循環統一所有圖片高度並對齊單元格 207

10.3.6 Do Loop語法詳解 209

10.3.7 在工作表中循環獲取所有字型 211

10.3.8 計算得分累加到1000時的月份 213

10.3.9 利用循環產生文字動畫 214

10.4 With語句 215

10.4.1 With語句的用途與語法 215

10.4.2 With語句實例 218

10.4.3 With語句常見錯誤分析 220

10.5 錯誤處理語句 221

10.5.1 錯誤類型與原因 222

10.5.2 Err對象及其屬性、方法 222

10.5.3 認識Error函式223

10.5.4 羅列錯誤代碼及含義 224

10.5.5 VBA的錯誤處理機制 225

10.5.6 錯誤處理:錯誤三次則退出程式 231

10.5.7 錯誤處理:多功能選區統計 232

10.5.8 錯誤處理的作用域 234

10.5.9 GoSub...Return語句 236

10.5.10 開發錯誤處理函式 238

第 11章 Excel常見對象的套用技巧

11.1 Application套用案例 241

11.1.1 選區拼寫檢查 241

11.1.2 調用工作表函式 242

11.1.3 切換滑鼠形狀 243

11.1.4 計算表達式 244

11.1.5 禁止程式運行時彈出警告框 245

11.1.6 調整計算方式 246

11.1.7 羅列最近使用過的檔案 247

11.1.8 查找並打開檔案 248

11.1.9 建立檔案目錄 248

11.1.10 定製程式標題 250

11.1.11 打開指定應用程式 250

11.1.12 新建一個帶有7個工作表的工作簿 251

11.1.13 在指定時間提示行程安排 252

11.1.14 模擬鍵盤快捷鍵 253

11.1.15 為過程指定快捷鍵 255

11.1.16 合併區域 256

11.1.17 獲取多區域的交集 258

11.1.18 中斷程式到一定時間後再繼續 259

11.1.19 調用內置對話框 260

11.1.20 滾動顯示Excel狀態欄信息 261

11.1.21 添加自定義序列 261

11.1.22 添加名稱 264

11.1.23 將自定義數標記為易失性函式 264

11.1.24 選定任意工作簿中的任意區域 265

11.1.25 設定應用程式的可見性 266

11.1.26 設定批註的顯示方式 267

11.2 Range對象套用案例 268

11.2.1 清除單元格格式 268

11.2.2 複製單元格數據 270

11.2.3 將區域中的數據合併到一個單元格中 272

11.2.4 多工作表數據合併且添加框線 273

11.2.5 讓高度與寬度自動適應數據 275

11.2.6 在區域中精確查找 275

11.2.7 替換不規則貨品名稱 278

11.2.8 將公式添加到批註 278

11.2.9 填充工作日 279

11.2.10 對區域添加四周框線 281

11.2.11 多區域合併 282

11.2.12 對小於60的成績加虛框 283

11.2.13 反向選擇單元格 285

11.2.14 插入圖片並調整為選區大小 287

11.2.15 選擇當前表已用區域的奇/偶數行 289

11.2.16 刪除當前表的空行 290

11.2.17 刪除重複值 291

11.2.18 將選區導出為圖片 293

11.2.19 刪除超連結 295

11.2.20 選擇本表所有合併單元格 296

11.2.21 朗讀選區字元 296

11.2.22 隱藏所有公式結果為錯誤的單元格 297

11.2.23 快速添加日期批註且自動縮放 298

11.2.24 以逗號為分隔設定將文本分列 299

11.2.25 生成二級下拉選單 300

11.2.26 將產量批量轉換成下拉選單 302

11.2.27 設計一個簡單放大鏡 303

11.3 Names對象套用案例 305

11.3.1 羅列當前工作簿的所有名稱 305

11.3.2 利用名稱引用其他表數據 305

11.3.3 隱藏當前工作簿包含“A”的所有名稱 306

11.3.4 借用名稱將區域數據引用到組合框 307

11.3.5 設計三級下拉選單 308

11.4 Comments 對象套用案例 311

11.4.1 批量將數據導入批註 311

11.4.2 在所有批註末尾添加指定日期 313

11.4.3 為批註設定圖片背景 314

11.4.4 添加個性化批註 315

11.4.5 批量修改當前表批註的外觀 318

11.4.6 替換所有批註中的“計算機”為“電腦” 319

11.5 Sheets對象套用案例 320

11.5.1 添加匯總工作表 320

11.5.2 批量添加工作表且以本月日期命名 321

11.5.3 迅速產生樣表 322

11.5.4 將當前表移到其他工作簿 324

11.5.5 除“目錄”工作表外隱藏其他所有工作表 324

11.5.6 分別計算工作表數量和圖表數量 325

11.5.7 建立帶連結功能的工作表目錄且通過快捷鍵返回目錄 326

11.5.8 對當前表已用區域設定背景圖片 328

11.5.9 批量命名工作表 329

11.5.10 隱藏所有工作表非使用區 330

11.6 Workbooks對象套用案例 332

11.6.1 新建工作簿且對其命名為今日期 332

11.6.2 將當前工作簿另外儲存且加密 333

11.6.3 工作簿拆分 335

11.6.4 批量打開檔案 336

11.6.5 導入文本檔案到當前工作簿 338

11.6.6 保存並關閉本工作簿以外的工作簿 339

11.6.7 每30分鐘備份工作簿 340

11.6.8 將當前工作簿備份到D糟 342

11.6.9 清除所有打開工作簿的密碼 342

11.6.10 獲取工作簿建立時間和最後一次保存時間 343

11.6.11 記錄檔案打開次數 344

11.6.12 切換圖形對象隱藏與顯示 345

11.6.13 設計一個查看一次即自動刪除的工作簿 346

11.6.14 禁止插入新工作表 347

11.6.15 不打開工作簿而提取數據 348

11.6.16 將指定資料夾下每個工作簿中的三月生產表合併到一個工作簿 350

11.6.17 建立指定資料夾下所有工作簿目錄和工作表目錄 353

11.6.18 斷開與其他工作簿的數據連結 355

11.7 Windows 對象案例 355

11.7.1 獲取視窗列表 355

11.7.2 確保隨時打開工作簿都視窗最大化 356

11.7.3 切換當前視窗的格線線、滾動條、標題與工作表標籤 357

11.7.4 自由滾動視窗方便閱讀工作表數據 357

11.7.5 以當前單元格為基準拆分窗格 360

11.7.6 計算活動單元格左邊距 360

11.7.7 計算活動單元格的螢幕位置 361

11.7.8 三種方式不顯示零值 362

第 12章 Excel的事件套用案例

12.1 應用程式事件案例 364

12.1.1 新工作簿環境設計 364

12.1.2 打開任意工作簿時全自動備份365

12.2 工作簿事件案例 366

12.2.1 新建工作表時自動設定頁眉 366

12.2.2 禁止縮小工作簿視窗 367

12.2.3 未匯總則禁止關閉工作簿 368

12.2.4 新建工作表時以當前時間命名 368

12.2.5 關閉工作簿前刪除多餘工作表 369

12.2.6 月底以外時間禁止列印總表 369

12.2.7 調整視窗大小時報告可見區域行列數 370

12.2.8 禁止切換到其他工作簿 371

12.3 工作表事件案例 371

12.3.1 選擇單元格時在狀態欄提示地址 371

12.3.2 快速錄入出勤表372

12.3.3 建立只能使用一次的超連結 373

12.3.4 讓A1的日期單擊更新 374

12.3.5 在狀態欄顯示選區的字母、數字、漢字個數 374

12.3.6 實時監控單元格每一次的編輯數據與時間 375

12.3.7 利用數字簡化公司名輸入 376

12.3.8 錄入數據時自動跳過帶公式的單元格 377

12.3.9 在工作表的標題行禁用左、右鍵 378

12.3.10 對選擇區域進行背景著色 379

12.3.11 適用於指定區域的自動更正 380

12.4 ActiveX控制項事件案例 381

12.4.1 滑鼠移過時切換按鈕顏色 381

12.4.2 滑鼠移動錄入姓名 382

12.4.3 滑鼠移過組合框時載入圖片 383

12.4.4 滑鼠移過列表框時輸入品名與單價 384

第 13章 數組基礎

13.1 數組基礎 386

13.1.1 數組概念 386

13.1.2 數據的維數 387

13.1.3 利用索引號獲取數組中的元素 388

13.1.4 聲明數組與賦值 389

13.1.5靜態數組動態數組390

13.2 內置數組函式 391

13.2.1 Array:創建一個數組 391

13.2.2IsArray:判斷是否是數組 392

13.2.3 Index:從數組中取值 392

13.2.4 Transpose:轉置數組 392

13.2.5LBound/Ubound:獲取數組的上下界 395

13.2.6 Split/ Join:文本與數組轉換 395

13.2.7 Filter:數組的篩選 396

第 14章 開發數組函式與數組套用

14.1 自定義數組函式 398

14.1.1 定義數組函式要點 398

14.1.2 獲取工作表目錄 398

14.1.3 星期序列 399

14.1.4 獲取區域的唯一值 400

14.2 數組套用案例 401

14.2.1 將按姓名排列的縱向學員錶轉置為按班級橫向排列 401

14.2.2 多表學員資料查詢 402

14.2.3 自定義百家姓序列 404

14.2.4 查詢兩列相同項 405

14.2.5 獲取資料夾下所有檔案詳細信息 406

14.2.6 獲取當前表所有批註 407

第 15章 認識窗體與控制項

15.1 UserForm簡介 409

15.1.1 窗體與控制項的用途 409

15.1.2 插入窗體與控制項的方法 409

15.1.3 使用Excel 5.0對話框 410

15.2 窗體控制項一覽 410

15.2.1 標籤 410

15.2.2 文字框 411

15.2.3 命令按鈕 411

15.2.4 複合框 411

15.2.5 列表框 411

15.2.6 複選框 411

15.2.7 單選框 411

15.2.8 分組框 411

15.2.9 切換按鈕 412

15.2.10 多頁控制項 412

15.2.11 滾動條 412

15.2.12 圖像 412

15.2.13 RefEdit 412

15.2.14 附屬檔案控制項 412

15.3 設定控制項屬性 413

15.3.1 調整窗體控制項位置與大小 413

15.3.2 設定控制項的順序 413

15.3.3 共同屬性與非共同屬性 413

15.3.4 設定顏色屬性 414

15.3.5 設定寬與高屬性 414

15.3.6 設定Picture屬性 414

15.3.7 設定游標屬性 415

15.3.8 設定複合框 415

15.3.9 設定Flash動畫 416

15.4 窗體與控制項的事件 416

15.4.1 窗體事件介紹 416

15.4.2 顯示窗體時隨機載入背景圖 417

15.4.3 初始化窗體時填充列表框下拉列表 417

15.4.4 雙擊時關閉窗體 418

15.4.5 窗體永遠顯示在上左角 418

15.4.6 按比例縮放窗體及滾動窗體 419

15.4.7 控制項事件介紹 421

15.4.8 在窗體中建立超連結 421

15.4.9 滑鼠移過更新列表框數據 422

15.4.10 讓輸入學號的文字框僅能錄入6位數字 423

15.4.11 滑鼠拖動調整文字框大小 424

15.4.12 為窗體中所有控制項設定幫助 426

第 16章 窗體控制項運用案例

16.1 窗體運用 428

16.1.1 設計登錄界面 428

16.1.2 許可權認證視窗 429

16.1.3 設計計畫任務嚮導 431

16.1.4 設計動畫幫助 434

16.1.5 用窗體瀏覽圖片 434

16.2 窗體與表格的互動 436

16.2.1 設計多表錄入面板 436

16.2.2 多條件高級查詢 438

16.2.3 分類匯總捐贈額並按需求導出 440

16.2.4 輸入長地名時逐一提示 441

第 17章 表單控制項與ActiveX控制項

17.1 表單控制項 444

17.1.1 控制項的調出方式 444

17.1.2 表單控制項的功能 444

17.1.3表單工具的優缺點 444

17.1.4 案例:批量插入單選框並分組 445

17.2 ActiveX控制項 446

17.2.1 ActiveX控制項功能 446

17.2.2 利用列表框突破數據有效性的單列限制 446

17.2.3 在工作表中播放Flash動畫 448

17.2.4 在工作表左上角播放GIF動畫 448

17.2.5 在複合框顯示數據源的唯一值 449

第 18章 檔案管理

18.1 認識檔案處理內置命令 451

18.1.1 打開與關閉檔案 451

18.1.2 讀取文本檔案內容 452

18.1.3 複製檔案 453

18.1.4 獲取檔案最後修改時間 453

18.1.5 計算檔案大小 454

18.1.6 獲取檔案屬性及設定檔案屬性 454

18.1.7 刪除檔案 454

18.1.8 創建與刪除資料夾 455

18.1.9 對檔案重命名 455

18.1.10 判斷檔案及目錄是否存在 455

18.2 檔案操作案例 456

18.2.1 批量建立資料夾 456

18.2.2 獲取D糟根目錄中大於1MB的檔案列表 456

18.2.3 將E盤根目錄中所有隱藏的檔案顯示出來 457

18.2.4 備份資料夾中的Excel檔案 457

18.2.5 限制檔案的最晚打開時間 458

18.2.6 刪除資料夾中2年沒有用過的檔案 458

18.2.7 檔案批量重命名 459

第 19章 FSO、WScript與DOS在VBA中的套用

19.1 認識FSO 460

19.1.1 FSO的用途與調用方式 460

19.1.2 FSO的對象 461

19.1.3 FSO常用對象的方法與屬性 461

19.2 用FSO處理檔案與目錄 463

19.2.1 獲取資料夾相關信息 463

19.2.2 刪除D糟中大小為0的資料夾 464

19.2.3 獲取C糟中所有檔案列表 464

19.3 關於腳本語言WScript 464

19.3.1 關於腳本語言 464

19.3.2 WScript的方法與屬性 465

19.3.3 WScript.Shell的使用方法 465

19.4 腳本語言套用案例 466

19.4.1 在桌面建立當前工作簿的捷徑 466

19.4.2 將Excel 2003和Excel 2007添加到右鍵“傳送到”選單 466

19.4.3 顯示桌面所有檔案列表 467

19.4.4 關閉數字鍵及打開大寫鎖定鍵 468

19.4.5 提取選擇的資料夾中所有檔案的信息 468

19.4.6 打開網上鄰居 469

19.4.7 在收藏夾中添加網址 469

19.5 VBA中調用DOS 470

19.6 DOS在VBA中的套用 471

19.6.1 獲取CDE三個磁碟根目錄中的目錄列表 471

19.6.2 獲取D糟中所有Excel檔案 471

19.6.3 獲取IP位址與網關設定 472

第 20章 磁碟與系統信息管理

20.1 獲取磁碟信息 473

20.1.1 CreateObject 配合FSO獲取磁碟信息 473

20.1.2GetObject配合WMI獲取磁碟信息 474

20.1.3 API法 474

20.2 獲取系統信息 475

20.2.1 羅列當前系統進程 475

20.2.2 獲取硬碟型號與容量 476

20.2.3 獲取解析度 476

第 21章 認識Excel的內置命令欄對象

21.1 關於內置命令欄 478

21.1.1 Excel對命令欄的處理方式 478

21.1.2 內置命令欄的分類 478

21.1.3 手工定義工具列按鈕 478

21.2 了解CommandBars對象 479

21.2.1 CommandBar的常用屬性 479

21.2.2 CommandBar的方法 479

21.2.3 獲取CommandBars子對象的名稱與類型 479

21.2.4 獲取及保存內置圖示 480

第 22章 創建新工具列

22.1 創建與刪除工具列 482

22.1.1 建立工具按鈕基本語法 482

22.1.2 自定義新工具列案例:工作表目錄 484

22.2 彈出式工具列 485

22.2.1 創建彈出式工具列語法結構 485

22.2.2 創建一個彈出式工具列 486

22.2.3 創建三級工具列 486

22.3 特殊的工具列 487

22.3.1 創建可讀寫的彈出式工具列 487

22.3.2 利用工具列文字框查找數據 488

第 23章 創建新選單欄

23.1 選單基礎 490

23.1.1 選單的分類 490

23.1.2 創建選單基本語法 490

23.1.3 設計選單注意事項 491

23.2 創建新選單案例 491

23.2.1 創建關機與重啟兩個工作表選單 491

23.2.2 由用戶定義子選單容器 492

23.3 設計感應選單 493

23.3.1 在指定工作表才可用的選單 493

23.3.2 在指定區域才可用的選單 493

23.3.3 選擇圖表才出現的選單 494

第 24章 操作快捷選單

24.1 認識快捷選單 495

24.1.1 快捷選單的分類 495

24.1.2 獲取Excel所有快捷選單 495

24.1.3 Excel 2003和Excel 2007中快捷選單的差異 496

24.2 定製快捷選單 496

24.2.1 創建單元格右鍵子選單 496

24.2.2 設計左鍵快捷選單 497

24.2.3 打造最強大的單元格右鍵選單 498

24.2.4 在窗體中顯示快捷選單 500

第 25章 認識類和類模組

25.1 類模組基礎 502

25.1.1 類模組套用範圍 502

25.1.2 類模組事件 502

25.1.3 類模組與變數 503

25.2 類的套用 503

25.2.1 程式級事件:在標題處顯示工作簿路徑 503

25.2.2 對所有工作表的選區背景著色 505

25.2.3 為窗體的按鈕批量設定事件過程 506

25.2.4 開發一個顏色拾取器 507

第 26章 API的基本套用

26.1 API在窗體設計中的套用 509

26.1.1 按任意地方都可拖動的窗體 509

26.1.2 設計半圓形動畫窗體 510

26.1.3 資料錄入完整滑鼠才可能離開窗體的範圍限制 511

26.1.4 拖動窗體隨意修改窗體大小 513

26.1.5 設計百葉窗式動態窗體 514

26.1.6 在窗體中展示文字動畫 515

26.2 API的其他套用 516

26.2.1 傳送郵件 516

26.2.2 仿Photoshop設計彩蛋 517

26.2.3 讓ActiveX控制項在非設計模式下也能移動 518

26.2.4 將檔案刪除並存入資源回收筒 519

第 27章 VBA與註冊表

27.1 VBA對註冊表的控制方式 521

27.1.1 什麼是註冊表 521

27.1.2 VBA操作註冊表的方法 522

27.1.3 VBA操作註冊表的優缺點 523

27.1.4 借用腳本實現註冊表的自由控制 523

27.2 註冊表的套用 523

27.2.1 記錄當前工作簿最後一次打開時間 524

27.2.2 限制工作簿使用次數 524

27.2.3 讓零值顯示設定適用所有工作表 525

27.2.4 禁止使用隨身碟 526

第 28章 VBE的對象模型與對象控制

28.1 準備工作 527

28.1.1 設定Excel選項 527

28.1.2 引用對象庫 528

28.2 認識VBE的對象模型 528

28.2.1 VBE對象模型的層次結構 528

28.2.2 VBE對象介紹 529

28.2.3 如何引用VBE對象 530

28.2.4 羅列當前工程中所有組件及其類型 530

28.3 VBE對象的控制 531

28.3.1 羅列指定模組中所有過程的名稱 531

28.3.2 羅列所有模組代碼總行數 533

28.3.3 利用代碼添加模組 534

28.3.4 用代碼添加工作簿事件代碼 534

28.3.5 創建ActiveX控制項且編寫單擊事件代碼 535

28.3.6 刪除當前工作簿所有代碼及窗體、模組組件 536

28.3.7 判斷工作簿是否有宏代碼 537

28.3.8 全自動生成窗體、控制項及事件代碼 538

第 29章 程式開發思想

29.1 開發人員自我定位 540

29.1.1 區別開發人員與套用人員 540

29.1.2 開發人員基本條件 540

29.2 開發外掛程式與普通VBA編程的區別 541

29.3 如何開發最佳應用程式 541

29.3.1 羅列應用程式需具備的功能 541

29.3.2 與終端用戶交流 542

29.3.3 規劃程式結構 542

29.3.4 設定友好的界面 542

29.3.5 提升程式通用性 542

29.3.6 注重程式效率 543

29.3.7 提供防錯機制 543

第 30章 開發VBE外掛程式

30.1 選單定製基礎 544

30.1.1 認識命令欄對象 544

30.1.2 創建命令欄基本語法 544

30.1.3 羅列VBE中所有選單與子選單 545

30.1.4 創建菜工具列以統計模組中過程相關信息 546

30.2 開發VBA外掛程式工具箱 547

30.2.1 開發外掛程式的準備工作 548

30.2.2 羅列外掛程式功能 548

30.2.3 開發代碼編號工具 548

30.2.4 開發代碼美化工具 550

30.2.5 開發代碼導出工具 552

30.2.6 開發代碼清除工具 553

30.2.7 開發代碼減肥工具 554

30.2.8 編寫選單 556

30.2.9 發布外掛程式 558

第 31章 開發xlam與COM載入項外掛程式

31.1 關於載入宏 560

31.1.1 載入宏的特點 560

31.1.2 為什麼使用載入宏 561

31.1.3 載入宏管理器 561

31.1.4 內置載入宏的載入與使用 562

31.1.5 安裝與卸載自定義載入宏 562

31.2 關於載入項 562

31.2.1 載入項的分類 563

31.2.2 載入項的開發方式 563

31.2.3 兩種載入項的安裝方式 563

31.3 準備編寫XLAM載入宏 565

31.3.1 認識Excel工作簿的格式 565

31.3.2 生成載入宏的兩種方法 566

31.4 開發集公農曆於一體的日期輸入器 566

31.4.1 確認程式需具備的功能 566

31.4.2 定義公曆轉農曆的函式 566

31.4.3 設計日期輸入器窗體 567

31.4.4 編寫窗體初始化代碼 568

31.4.5 實現輸入器與工作表互動 570

31.4.6 設計幫助 572

31.4.7 定製選單 575

31.4.8 測試並發布外掛程式 575

31.5 利用VB 6.0編寫COM載入項 576

31.5.1 COM載入項開發基礎 576

31.5.2 安裝VB 6.0企業版 576

31.5.3 開發COM載入項基本步驟 577

31.6 開發重複值控制器 579

31.6.1 確認外掛程式所需功能 580

31.6.2 建立VB工程 580

31.6.3 編寫選單代碼及回響事件 580

31.6.4 編寫重複值控制主程式 581

31.6.5 發布載入項並安裝調試 582

第 32章 開發“Excel百寶箱”

(以下內容見光碟)

32.1 程式規劃 584

32.1.1 了解終端用戶需求 584

32.1.2 確認外掛程式功能表 585

32.1.3 規劃外掛程式結構 585

32.2 財務工具箱 586

32.2.1 製作工資條頭 586

32.2.2 根據工資計算所需鈔票張數 588

32.2.3 小寫金額轉大寫 591

32.2.4 工作簿與工作表合併 592

32.2.5 工作表拆分 602

32.2.6 工作簿拆分 605

32.2.7 複選框工具 609

32.2.8 文本與數據轉換 612

32.3 合併工具箱 613

32.3.1 合併數據並居中及其還原 614

32.3.2 合併數據並複製 615

32.3.3 取消區域合併填充原合併值 617

32.3.4 可還原的合併居中 618

32.3.5 合併列中相同數據及還原 620

32.4 批註工具箱 621

32.4.1 批註管理器 622

32.4.2 添加個性化批註 625

32.4.3 建立圖片批註 627

32.4.4 批量添加右列內容為批註 628

32.4.5 批量導入同名照片到批註 629

32.5 圖片工具箱 631

32.5.1 將選區轉換成圖片 631

32.5.2 批量導入圖片 633

32.5.3 批量導出圖片到硬碟 635

32.6 開發函式 637

32.6.1 開發自定義函式 637

32.6.2 設計函式幫助 656

32.7 定製百寶箱幫助 659

32.7.1 定製百寶箱幫助 659

32.7.2 信息反饋 664

32.8 定製多級選單並發布 666

32.8.1 定製選單 666

32.8.2 發布 667

32.8.3 小結 668

相關詞條

相關搜尋

熱門詞條

聯絡我們