《Office VBA開發經典——基礎入門卷》是2018年9月清華大學出版社出版的圖書,作者是劉永富、劉行。
基本介紹
- 中文名:Office VBA開發經典——基礎入門卷
- 作者:劉永富、劉行
- 出版社:清華大學出版社
- 出版時間:2018年9月
- 定價:99 元
- ISBN:9787302505891
內容簡介,圖書目錄,
內容簡介
本書由一線高校教師根據自己十餘年VBA開發經驗編寫而成,書中深入淺出地介紹Of?ce VBA的開發方法與實踐。本書內容體系完善,涉及Of?ce多個組件的互動編程,重點闡釋工具列設計和功能區設計,案例豐富,讓讀者身臨其境,體會VBA編程的策略和魅力。
本書可以幫助讀者輕鬆熟悉Of?ce VBA編程,系統學習VBA編程的每個層面。全書分為19章,內容包括VBA編程概述、宏的編寫和執行、VBA編程環境、VBA語法基礎、過程與函式設計、程式調試和錯誤處理、字元串處理、數學計算與日期處理、Excel VBA對象模型和相關對象、用戶窗體和控制項設計、自定義工具列、Excel載入宏和經典編程實例等。書中所有章節涉及的程式代碼都給出了詳細分析。
本書可作為職場辦公人員、高校理工科師生、Of?ce專業開發人員的自學用書,也可以作為Of?ce編程培訓講師的教學參考書。
圖書目錄
第1章?VBA編程概述 1
1.1?VBA套用領域和發展現狀 1
1.1.1?美國的VBA水平 1
1.1.2?日本的VBA水平 2
1.1.3?VBA專家考試 3
1.2?Office與VBA的安裝 3
1.2.1?安裝DAEMON Tools Lite 5
1.2.2?Office 2003的安裝 6
1.2.3?Office 2010的安裝 10
1.3?Office版本 12
1.3.1?界面的變化 13
1.3.2?檔案格式的革新 14
1.3.3?Office版本對VBA編程的
???影響 15
1.4?Office VBA編程開發的產品類型 15
1.4.1?基於Office檔案的編程開發 15
1.4.2?Visual Basic 6封裝 16
1.4.3?VSTO開發 16
1.5?高效學習VBA編程 16
1.5.1?必備基礎 16
1.5.2?學習計畫 17
習題 17
第2章?宏的編寫和執行 18
2.1?編程前的設定 18
2.1.1?顯示“開發工具”選項卡 18
2.1.2?設定宏安全性 19
2.2?開始VBA宏編程 20
2.2.1?手工編寫第一個VBA宏 20
2.2.2?錄製宏 21
2.3?VBA代碼的保存 23
2.4?宏的執行方法 24
2.4.1?使用“宏”對話框 25
2.4.2?使用快捷鍵 25
2.4.3?指定宏到圖形對象 26
2.4.4?使用工作表事件運行宏 26
2.4.5?使用工作簿事件運行宏 28
2.4.6?指定宏到功能區 28
2.4.7?指定宏到快速訪問工具列 30
2.4.8?通過立即視窗執行宏 31
習題 31
第3章?VBA編程環境 32
3.1?VBA編輯器界面介紹 32
3.1.1?立即視窗 33
3.1.2?本地視窗 35
3.1.3?屬性視窗 35
3.1.4?對象瀏覽器 36
3.1.5?代碼的查找和替換 37
3.1.6?VBA選項 38
3.1.7?外接程式管理器 39
3.1.8?VBA幫助 40
3.2?VBA工程管理 42
3.2.1?添加模組 42
3.2.2?移除模組 42
3.2.3?導出和導入模組 43
3.2.4?修改工程屬性 43
3.2.5?工程引用 44
習題 45
第4章?VBA語法基礎 46
4.1?VBA數據類型 46
4.1.1?字元串 47
4.1.2?數值型 48
4.1.3?日期和時間型 49
4.1.4?布爾型 49
4.1.5?變體型 50
4.1.6?對象型 50
4.1.7?數據類型的判斷 51
4.1.8?變數聲明的簡寫形式 54
4.1.9?變數聲明的初始默認值 54
4.1.10?數據類型的轉換 55
4.2?表達式與運算符 56
4.2.1?算術運算符 56
4.2.2?比較運算符 57
4.2.3?Like運算符 58
4.2.4?邏輯運算符 59
4.3?使用變數 60
4.3.1?變數命名 60
4.3.2?變數的聲明 60
4.3.3?變數的賦值 61
4.3.4?變數的作用範圍和生存期 63
4.3.5?聲明變數的其他寫法 64
4.4?使用常量 64
4.4.1?自定義常量 64
4.4.2?內置枚舉常量 65
4.5?其他數據類型 68
4.5.1?自定義類型 68
4.5.2?枚舉類型 69
4.5.3?集合 70
4.6?使用InputBox輸入對話框 72
4.6.1?VBA庫中的InputBox 72
4.6.2?Excel庫中的InputBox 73
4.7?使用MsgBox輸出對話框 75
4.8?順序結構 77
4.9?條件選擇結構 77
4.9.1?If語句 78
4.9.2?Select語句 79
4.9.3?Choose語句 82
4.9.4?Switch語句 82
4.10?循環結構 83
4.10.1?While…Wend語句 83
4.10.2?Do…Loop語句 84
4.10.3?For語句 86
4.10.4?For Each語句 87
4.11?流程跳轉控制語句 88
4.11.1?GoTo語句 88
4.11.2?GoSub…Return語句 89
4.11.3?Exit語句 90
4.11.4?End語句 90
4.12?數組 91
4.12.1?一維數組 91
4.12.2?二維數組 93
4.12.3?使用Array創建數組 94
4.12.4?對象數組 95
4.12.5?變體數組 96
4.12.6?動態數組 96
4.13?代碼最佳化 97
4.13.1?同一行書寫多條語句 98
4.13.2?長語句的續行書寫 98
4.13.3?使用縮進 98
4.13.4?使用模組定義 102
4.13.5?使用注釋 103
4.13.6?使用With結構 104
4.13.7?使用Me關鍵字 106
習題 107
第5章?過程與函式設計 108
5.1?過程 108
5.1.1?創建過程 108
5.1.2?過程的運行和調用 109
5.1.3?過程的參數 110
5.1.4?可選和默認參數 112
5.1.5?參數的傳遞方式 113
5.1.6?參數數量可變的過程 114
5.1.7?數組作為參數 114
5.2?函式 115
5.2.1?自定義函式的返回值 116
5.2.2?自定義函式的用途 116
5.2.3?設定自定義函式的說明信息 119
5.2.4?為自定義函式創建幫助文檔 121
習題 127
第6章?程式調試和錯誤處理 128
6.1?程式調試技巧 128
6.1.1?單步執行程式 128
6.1.2?設定斷點 130
6.1.3?使用Stop語句 130
6.2?錯誤處理 131
6.2.1?Err對象 132
6.2.2?遍歷錯誤號和錯誤描述 133
6.2.3?故意引發錯誤 133
6.3?錯誤跳轉 134
6.3.1?錯誤發生時跳轉到某行 134
6.3.2?錯誤發生時繼續向下執行 136
6.3.3?Resume與Resume Next語句 136
習題 137
第7章?字元串處理 139
7.1?認識字元串 140
7.1.1?全形與半角 140
7.1.2?子字元串 140
7.1.3?字元串的長度 141
7.1.4?檢索子字元串的位置 142
7.2?字元串轉換 144
7.2.1?字元與ASCII碼 144
7.2.2?大小寫轉換 145
7.2.3?全半角轉換 146
7.2.4?去除多餘空格 146
7.2.5?倒序 147
7.2.6?替換 147
7.3?字元串生成 149
7.3.1?String函式 149
7.3.2?Space函式 149
7.4?字元串與數組 149
7.4.1?Split函式 149
7.4.2?Join函式 151
7.4.3?Filter函式 151
習題 152
第8章?數學計算與日期處理 154
8.1?數學函式 154
8.1.1?三角函式計算 154
8.1.2?隨機數 155
8.2?日期與時間函式 156
8.2.1?返回與設定當前日期時間 157
8.2.2?計算程式運行時間 157
8.2.3?日期時間的生成 158
8.2.4?日期時間的加減運算 159
8.2.5?計算兩個日期的間隔 160
8.2.6?日期時間的分解 161
習題 161
第9章?Excel VBA對象模型 162
9.1?對象和對象類型 162
9.1.1?屬性 162
9.1.2?方法 163
9.1.3?事件 163
9.1.4?父子對象 164
9.2?使用對象變數 164
9.2.1?With結構 166
9.2.2?集合對象 167
9.3?Excel VBA對象 170
9.3.1?應用程式對象 171
9.3.2?工作簿對象 171
9.3.3?表對象 171
9.3.4?單元格區域對象 171
習題 172
第10章?應用程式Application對象 173
10.1?Application對象重要成員 173
10.1.1?ActiveWorkbook 173
10.1.2?ActiveSheet 173
10.1.3?ActiveWindow 174
10.1.4?ActiveCell 174
10.1.5?Addins 175
10.1.6?COMAddins 176
10.1.7?WorksheetFunction 178
10.1.8?Commandbars 179
10.2?Application對象重要屬性 180
10.2.1?默認檔案路徑DefaultFilePath
??? 屬性 180
10.2.2?顯示剪貼簿DisplayClipboardWindow
??? 屬性 181
10.2.3?啟用事件EnableEvents屬性 182
10.2.4?顯示“開發工具”選項卡
??? ShowDevTools屬性 182
10.2.5?句柄Hwnd屬性 182
10.2.6?標題Caption屬性 183
10.2.7?版本Version屬性 183
10.2.8?用戶名UserName屬性 184
10.2.9?安裝路徑Path屬性 185
10.2.10?狀態欄StatusBar屬性 186
10.2.11?默認工作表個數
??? SheetsInNewWorkbook屬性 187
10.2.12?視窗狀態WindowState
??? 屬性 187
10.2.13?最近打開的檔案
??? RecentFiles 188
10.3?Application對象常用方法 189
10.3.1?激活其他組件
??? ActivateMicrosoftApp方法 189
10.3.2?設定Excel的計算模式 189
10.3.3?計算Calculate方法 190
10.3.4?表達式評價Evaluate方法 190
10.3.5?快捷鍵OnKey方法 191
10.3.6?傳送按鍵SendKeys方法 192
10.3.7?運行宏Run方法 193
10.3.8?退出應用程式Quit方法 195
10.3.9?定時執行OnTime方法 195
10.3.10?撤銷Undo方法 196
10.4?Application對象常用事件 196
10.4.1?WorkbookBeforeClose事件 198
10.4.2?事件的取消 199
10.4.3?禁用和啟用事件 199
10.4.4?SheetSelectionChange事件 199
10.4.5?WindowActivate事件 200
10.4.6?歸納總結 201
習題 201
第11章?工作簿Workbook對象 202
11.1?工作簿對象的表達 202
11.1.1?利用索引值 202
11.1.2?利用工作簿名稱 202
11.1.3?宏代碼所在的工作簿 202
11.1.4?活動工作簿 203
11.2?Workbook對象重要屬性 204
11.2.1?文檔內置屬性
??? BuiltinDocumentProperties 205
11.2.2?文檔自定義屬性
??? CustomDocumentProperties 207
11.2.3?工作簿的名稱和路徑 208
11.2.4?IsAddin屬性 208
11.2.5?Saved屬性 209
11.2.6?工作簿的視窗 209
11.3?Workbook對象重要方法 214
11.3.1?新建工作簿 214
11.3.2?打開工作簿 215
11.3.3?設定工作簿的打開密碼 215
11.3.4?保存工作簿 216
11.3.5?另外儲存工作簿 216
11.3.6?關閉工作簿 217
11.3.7?激活工作簿 217
11.3.8?保護工作簿 218
11.3.9?導出為PDF文檔 218
11.4?Workbook對象常用事件 221
11.4.1?工作簿打開和關閉前事件 222
11.4.2?文檔事件過程中Cancel參數的
??? 作用 223
11.4.3?工作表激活事件 223
11.4.4?工作表右擊事件 224
11.4.5?工作表修改事件 225
11.4.6?工作表選中區域變更事件 226
習題 226
第12章?工作表Worksheet對象 227
12.1?工作表集合Worksheets對象 228
12.1.1?表的遍歷 229
12.1.2?表的增加 230
12.1.3?表的刪除 231
12.2?Worksheet對象常用屬性 233
12.2.1?單元格屬性 233
12.2.2?Name與CodeName屬性 234
12.2.3?前一個與後一個工作表 235
12.2.4?應用程式與父級對象 236
12.2.5?工作表標籤顏色 236
12.2.6?是否顯示分頁符 237
12.2.7?工作表的可見性 237
12.2.8?頁面設定 238
12.3?工作表的自動篩選 240
12.3.1?工作表的3種狀態 241
12.3.2?遍歷篩選器 244
12.3.3?處理自動篩選後的區域 245
12.3.4?按照單元格填充顏色
??? 篩選 247
12.3.5?按照單元格字型顏色篩選 248
12.4?Worksheet對象常用方法 248
12.4.1?激活和選中工作表 249
12.4.2?工作表的移動和複製 250
12.4.3?控制工作表的計算 251
12.4.4?設定背景圖片 252
12.4.5?複製和貼上數據 253
12.4.6?使用記錄窗體 254
12.4.7?工作表的保護 255
12.4.8?工作表的預覽和列印 256
12.5?Worksheet對象重要事件 258
12.5.1?選中區域變更事件 259
12.5.2?工作表修改事件 261
12.5.3?工作表右擊事件 263
12.5.4?使用類模組操作Excel文檔
??? 事件 265
習題 266
第13章?圖表Chart對象 267
13.1?Chart對象重要屬性 269
13.1.1?圖表的構成 269
13.1.2?讀寫圖表類型 270
13.1.3?修改圖表數據源 270
13.1.4?設定圖表標題 271
13.1.5?設定圖表區與繪圖區格式 273
13.1.6?設定坐標軸格式 274
13.1.7?運算元據系列 275
13.1.8?遍歷數據系列 276
13.1.9?運算元據點 277
13.1.10?運算元據標記 278
13.1.11?操作圖例 279
13.2?Chart對象常用方法 280
13.2.1?圖表工作表的刪除 280
13.2.2?圖表複製為圖片 281
13.2.3?改變圖表位置 281
13.3?Chart對象事件 282
13.3.1?激活圖表工作表的事件 282
13.3.2?識別圖表中的不同元素 282
13.4?自動創建圖表 284
13.4.1?創建圖表工作表 284
13.4.2?在普通工作表中插入圖表 285
13.5?自動刪除圖表 286
13.5.1?刪除所有圖表工作表 286
13.5.2?刪除工作表中所有圖表對象 287
習題 287
第14章?單元格區域Range對象 288
14.1?Range對象的表示方法 290
14.1.1?使用Cells 290
14.1.2?Range對象的無限嵌套性 292
14.2?Range對象的常用屬性 293
14.2.1?區域地址 293
14.2.2?獲取單元格區域的位置與
??? 大小 294
14.2.3?單元格的地理位置 295
14.2.4?單元格內容屬性 299
14.3?Range的產生和轉化 305
14.3.1?引用工作表已使用區域 305
14.3.2?引用當前連續區域 306
14.3.3?引用數組公式區域 307
14.3.4?引用整行與整列 307
14.3.5?單元格的偏移 308
14.3.6?改變單元格區域大小 308
14.3.7?獲取最後一個非空單元格 310
14.3.8?區域的聯合 311
14.3.9?區域的相交包含 312
14.4?Range對象的常用方法 313
14.4.1?單元格的選中和激活 313
14.4.2?複製剪下單元格 315
14.4.3?貼上格式 315
14.4.4?插入和刪除單元格 316
14.4.5?自動調整行高列寬 318
14.4.6?自動填充 318
14.4.7?單元格排序 320
14.4.8?查找和替換 321
14.4.9?文本分列 323
14.4.10?自動朗讀單元格內容 324
14.5?Range成員對象 325
14.5.1?設定單元格框線 325
14.5.2?設定單元格填充色 328
14.5.3?設定單元格字型 330
14.5.4?單元格的對齊方式 331
14.5.5?處理單元格中的字元 333
14.5.6?處理單元格中的批註 335
14.5.7?處理條件格式 339
14.5.8?處理數據有效性 344
14.5.9?使用單元格樣式 348
14.6?Range對象專題講解 352
14.6.1?單元格的合併與取消合併 352
14.6.2?Range與名稱的使用 354
14.6.3?如何遍歷單元格 357
14.6.4?單元格與數組之間的數據
??? 傳遞 359
14.6.5?單元格的帶格式查找 361
14.6.6?公式審核 362
習題 365
第15章?其他常用Excel VBA對象 367
15.1?處理工作表中的圖片 367
15.1.1?插入外部圖片 367
15.1.2?插入形狀 369
15.1.3?Shape對象的引用和遍歷 370
15.1.4?Shape對象的屬性獲取與
??? 設定 371
15.1.5?Shape對象的常用方法 373
15.2?工作表使用表單控制項 378
15.2.1?使用組合框 379
15.2.2?使用列表框 380
15.2.3?使用複選框 380
15.2.4?使用單選按鈕 380
15.2.5?數值調節器 382
15.2.6?滾動條 382
15.2.7?用代碼自動插入表單控制項 383
15.2.8?批量刪除表單控制項 385
15.3?工作表使用ActiveX控制項 386
15.3.1?控制項的屬性設定 387
15.3.2?控制項的事件過程 387
15.3.3?自動插入ActiveX控制項 388
15.3.4?工作表中播放動畫 389
15.3.5?ActiveX控制項的刪除 390
15.4?處理工作表中的超連結 391
15.4.1?創建超連結 391
15.4.2?遍歷工作表中的超連結 392
15.4.3?打開超連結 393
15.4.4?刪除超連結 393
15.5?Excel內置對話框 394
15.5.1?調出內置對話框 394
15.5.2?為對話框設定默認參數 395
15.6?檔案選擇對話框 395
15.6.1?對話框的類型 395
15.6.2?對話框的屬性 396
15.6.3?對話框的方法 396
15.6.4?檔案選擇 396
15.6.5?路徑選擇 398
15.6.6?打開檔案 398
15.6.7?另外儲存檔案 400
15.7?操作自定義序列 401
15.7.1?增加用戶自定義序列 402
15.7.2?獲取序列的編號 403
15.7.3?導出全部序列到單元格 403
15.7.4?刪除自定義序列 404
習題 404
第16章?用戶窗體和控制項設計 407
16.1?窗體設計基礎 407
16.1.1?設計的第一個窗體 408
16.1.2?使用和維護控制項工具箱 411
16.1.3?基本控制項 412
16.1.4?使用屬性視窗 412
16.2?窗體與控制項的通用屬性 413
16.2.1?名稱 413
16.2.2?標題 413
16.2.3?文本 414
16.2.4?值 414
16.2.5?位置大小屬性 414
16.2.6?背景色 415
16.2.7?前景色 415
16.2.8?字型 415
16.2.9?Tab序號 416
16.2.10?可用性 417
16.2.11?可見性 417
16.3?窗體與控制項的通用方法 418
16.3.1?自動獲得焦點 418
16.3.2?移動控制項 418
16.3.3?改變疊放次序 419
16.4?窗體與控制項的事件 420
16.5?窗體使用技巧 421
16.5.1?窗體的模式 421
16.5.2?設定窗體的字型 421
16.5.3?設定窗體背景圖片 421
16.5.4?窗體鋪滿整個螢幕 423
16.5.5?窗體的啟動和關閉事件 423
16.6?命令按鈕使用技巧 424
16.6.1?自動調整按鈕大小 424
16.6.2?默認按鈕和退出按鈕 424
16.6.3?設定控制項的提示語 425
16.6.4?為按鈕設定加速鍵 425
16.6.5?設定滑鼠指針 425
16.7?標籤 426
16.7.1?設定標籤的框線 426
16.7.2?標籤的自適應 426
16.7.3?文本自動換行 426
16.8?文本框 426
16.8.1?鎖定文本框 427
16.8.2?製作密碼輸入框 427
16.8.3?限制輸入長度 427
16.8.4?多行模式 427
16.8.5?文本框的滾動條 427
16.8.6?自動重置和驗證文本 428
16.8.7?內容改變事件 429
16.8.8?使用文本框的選定狀態 429
16.8.9?文本框內容的複製、貼上 430
16.9?回響鍵盤按鍵的事件 431
16.9.1?按下快捷鍵關閉窗體 431
16.9.2?鬆開快捷鍵讓文本框內容
??? 倒序 432
16.9.3?識別和修改輸入的字元 433
16.10?組合框 433
16.10.1?增加條目 434
16.10.2?刪除條目 435
16.10.3?獲取組合框條目信息 435
16.11?列表框 436
16.11.1?列表框的單擊事件 437
16.11.2?帶複選框的多選列表框 438
16.12?複選框 439
16.13?單選按鈕 440
16.13.1?使用框架隔離單選按鈕 440
16.13.2?設定GroupName隔離
??? 單選按鈕 441
16.14?切換按鈕 442
16.15?框架 442
16.16?多標籤控制項 443
16.16.1?用代碼增加標籤 445
16.16.2?用代碼刪除標籤 446
16.17?多頁控制項 446
16.18?滾動條 448
16.19?旋轉按鈕 449
16.20?圖像控制項 450
16.21?RefEdit控制項 451
16.22?遍歷窗體上的控制項 452
16.22.1?運行期間動態增加控制項 453
16.22.2?運行期間動態刪除控制項 454
16.23?回響滑鼠單擊的事件 455
16.23.1?判斷滑鼠按鍵 455
16.23.2?判斷鍵盤輔助鍵 456
16.23.3?判斷單擊位置 456
16.23.4?移動滑鼠的事件 458
16.24?使用附加控制項 458
習題 460
第17章?自定義工具列 462
17.1?工具列基礎知識 462
17.1.1?使用自定義對話框 465
17.1.2?手工方式進行工具列設計 465
17.1.3?自定義工具列的存儲位置 470
17.2?工具列的VBA模型 471
17.3?CommandBar對象 471
17.3.1?CommandBar重要屬性 472
17.3.2?CommandBar重要方法 474
17.4?CommandBarControl對象 477
17.4.1?遍歷工具列中所有控制項
??? 信息 478
17.4.2?控制項的屬性 480
17.4.3?控制項的方法 487
17.4.4?控制項的事件 491
17.5?創建自定義工具列 493
17.5.1?創建選單欄 493
17.5.2?創建級聯選單 496
17.5.3?創建一般工具列 498
17.5.4?調整工具列的位置和大小 500
17.5.5?創建右鍵選單 502
17.6?自定義工具列高級技術 505
17.6.1?使用組合框控制項 505
17.6.2?使用文本框控制項 507
17.6.3?設計用戶窗體的選單 509
17.6.4?遍歷所有FaceID 510
17.6.5?提取Windows系統字型名稱和
??? 字號列表 511
17.7?Excel高版本的工具列設計 512
17.7.1?增加選單命令 512
17.7.2?增加工具列命令 513
17.7.3?創建自定義工具列 513
17.7.4?顯示Excel 2003經典選單 515
習題 515
第18章?Excel載入宏 517
18.1?Excel載入宏對話框 517
18.2?載入宏可以包含的內容 518
18.2.1?過程和快捷鍵 519
18.2.2?自定義函式 521
18.2.3?用戶窗體 521
18.2.4?工具列和控制項 522
18.2.5?自定義功能區 524
18.2.6?事件過程 524
18.3?修改載入宏檔案 525
18.4?使用VBA操作載入宏 526
18.4.1?載入宏的重要屬性 527
18.4.2?載入宏的遍歷 528
18.4.3?VBA代碼中調用載入宏中的
??? 過程和函式 528
18.4.4?完全刪除載入宏 530
習題 531
第19章?經典編程實例 533
19.1?角谷猜想 533
19.2?單元格文字連線 534
19.3?學生成績評定和登記 535
19.4?匯總歷年獎牌榜 536
19.5?早退員工高亮顯示 538
19.6?一次函式用於單元格的遍歷 539
19.7?單詞表按首字母匯總 542
19.8?交叉表匯總——雙邊貿易關係 543
附錄A?VBA編程常用資料 545
A.1?Excel VBA實用語句 545
A.1.1?Application對象實用語句 545
A.1.2?Workbook對象實用語句 545
A.1.3?Worksheet對象實用語句 546
A.1.4?Window對象實用語句 546
A.1.5?Range對象實用語句 546
A.2?VBA函式用法示例 547
A.3?VBA編程疑難問答 550