● 1章 VBA編程概述 1
1.1 VBA簡介 1
1.1.1 VBA發展歷程簡述 1
1.1.2 VBA的應用場合 2
1.1.3 VBA的特點 2
1.2 Excel文件格式 3
1.3 宏的安全性設置 3
1.3.1 臨時允許或禁止運行宏 3
1.3.2 允許運行特定文件夾中的宏 4
1.3.3 允許運行所有宏 6
1.3.4 禁止他人隨意修改宏 7
1.4 錄制與使用宏 7
1.4.1 顯示“開發工具”選項卡 7
1.4.2 錄制宏 8
1.4.3 保存宏 10
1.4.4 運行宏的多種方式 10
1.4.5 錄制和相對錄制 13
1.4.6 修改宏 14
1.5 使用VBE窗口 14
1.5.1 打開VBE窗口 15
1.5.2 工程資源管理器 15
1.5.3 屬性窗口 16
1.5.4 代碼窗口 16
1.5.5 管理代碼模塊 17
1.6 Excel應用程序開發流程 17
1.6.1 Excel應用程序的標準 17
1.6.2 確定用戶類型 18
1.6.3 確定用戶需求 18
1.6.4 設計用戶界面 19
1.6.5 編寫代碼 20
1.6.6 測試應用程序 20
1.6.7 修復錯誤 20
1.6.8 發布應用程序 21
第2章 掌握VBA編程語言 22
2.1 與VBA進行簡單的交互 22
2.1.1 使用MsgBox函數輸出信息 22
2.1.2 使用InputBox函數輸入信息 25
2.2 數據類型、變量和常量 26
2.2.1 VBA中的數據類型 26
2.2.2 聲明變量 27
2.2.3 變量的命名規則 29
2.2.4 變量的作用域和生存期 30
2.2.5 使用常量 32
2.3 表達式和運算符 32
2.4 創建Sub過程 34
2.4.1 聲明Sub過程 34
2.4.2 Sub過程的作用域 35
2.4.3 在VBA中調用Sub過程 36
2.4.4 向Sub過程傳遞參數 38
2.4.5 Sub過程的遞歸 40
2.5 創建Function過程 41
2.5.1 Function過程與Sub過程的區別 41
2.5.2 聲明Function過程 41
2.5.3 調用Function過程 43
2.5.4 使用VBA內置函數 43
2.6 控制程序的運行流程 44
2.6.1 If Then判斷結構 44
2.6.2 Select Case判斷結構 48
2.6.3 For Next循環結構 50
2.6.4 Do Loop循環結構 51
2.7 使用數組 53
2.7.1 數組的維數 53
2.7.2 聲明一維數組 54
2.7.3 聲明二維數組 55
2.7.4 為數組賦值 56
2.7.5 使用動態數組 57
2.8 錯誤處理 58
2.8.1 錯誤類型 58
2.8.2 調試代碼 60
2.8.3 處理運行時錯誤 61
2.9 規範化編寫代碼 63
2.9.1 強制變量聲明 63
2.9.2 使用縮進格式 63
2.9.3 將長代碼分成多行 64
2.9.4 為代碼添加注釋 64
第3章 對像編程基礎 66
3.1 理解類、對像與集合 66
3.1.1 Excel對像模型 66
3.1.2 類與對像 66
3.1.3 使用對像瀏覽器查看類和對像的相關信息 67
3.1.4 引用集合中的對像 67
3.1.5 父對像與子對像及其定位方法 68
3.2 對像的屬性 68
3.2.1 引用對像的屬性 69
3.2.2 設置屬性的值 69
3.2.3 可返回對像的屬性 70
3.3 對像的方法 70
3.3.1 方法的參數 70
3.3.2 使用命名參數 71
3.3.3 可返回對像的方法 72
3.4 對像編程技巧 72
3.4.1 使用對像變量 72
3.4.2 使用With結構 73
3.4.3 使用For Each結構 74
第4章 使用Application對像處理Excel程序 76
4.1 理解Application對像和全局屬性 76
4.2 獲取Excel程序的相關信息 78
4.2.1 獲取Excel程序的版本號 78
4.2.2 獲取在Excel程序中設置的用戶名 78
4.2.3 獲取Excel安裝路徑、啟動文件夾路徑和工作簿模板路徑 79
4.3 設置Excel程序的界面環境與操作方式 79
4.3.1 設置Excel程序的可見性 79
4.3.2 設置Excel程序窗口是否全屏顯示 80
4.3.3 設置Excel程序窗口的狀態 80
4.3.4 設置Excel程序窗口的尺寸和位置 81
4.3.5 設置Excel程序窗口標題欄中顯示的名稱 82
4.3.6 設置編輯欄、浮動工具欄和“開發工具”選項卡的顯示狀態 82
4.3.7 設置狀態欄中顯示的信息 84
4.3.8 設置警告信息的顯示方式 85
4.3.9 設置新工作簿中默認包含的工作表數量 85
4.3.10 設置工作簿的默認字體和字號 86
4.3.11 設置打開文件時的默認路徑 86
4.3.12 控制屏幕刷新 87
4.4 使用Excel程序 88
4.4.1 定時自動運行VBA過程 88
4.4.2 為VBA過程指定快捷鍵 90
4.4.3 向其他程序發送按鍵信息 91
4.4.4 計算字符串表達式 91
4.4.5 在VBA中使用Excel工作表函數 92
第5章 使用Workbook對像處理工作簿 94
5.1 理解Workbooks集合與Workbook對像 94
5.1.1 Workbooks集合的常用屬性和方法 94
5.1.2 Workbook對像的常用屬性和方法 94
5.1.3 引用工作簿 95
5.2 新建工作簿 95
5.2.1 新建一個工作簿 96
5.2.2 新建多個工作簿 96
5.3 打開工作簿 97
5.3.1 打開一個工作簿 97
5.3.2 打開多個工作簿 98
5.3.3 獲取工作簿的路徑和名稱 98
5.4 保存工作簿 99
5.4.1 保存和另存工作簿 99
5.4.2 覆蓋現有工作簿 100
5.5 關閉工作簿 100
5.5.1 關閉一個工作簿 100
5.5.2 關閉多個工作簿 101
5.5.3 關閉多餘的工作簿窗口 102
5.6 保護工作簿 103
5.6.1 為工作簿設置打開密碼 103
5.6.2 清除工作簿中的密碼 103
第6章 使用Worksheet對像處理工作表 105
6.1 理解Worksheets集合與Worksheet對像 105
6.1.1 Worksheets集合的常用屬性和方法 105
6.1.2 Worksheet對像的常用屬性和方法 105
6.1.3 Worksheets集合與Sheets集合 106
6.1.4 引用工作表 106
6.2 獲取工作表的相關信息 107
6.2.1 獲取工作表的類型 107
6.2.2 獲取工作簿結構的保護狀態 108
6.2.3 獲取工作表的保護狀態 109
6.3 新建工作表 109
6.4 選擇與激活工作表 110
6.5 重命名工作表 111
6.6 移動和復制工作表 112
6.6.1 移動工作表 112
6.6.2 復制工作表 113
6.7 隱藏工作表 113
6.8 刪除工作表 114
6.9 將工作簿中的所有工作表導出為獨立的工作簿 115
第7章 使用Range對像格區域 117
7.1 理解Range對像 117
7.1.1 Range對像的常用屬性和方法 117
7.1.2 選擇與格 118
7.2 格區域 119
7.2.1 引用格 119
7.2.2 引用連續或不連格區域 121
7.2.3 處理格區域 122
7.2.4 引用多個區域的重疊部分 122
7.2.5 引用一行或多行 123
7.2.6 引用一列或多列 124
7.2.7 [A1]引用方式 124
7.2.8 引用當前包含數據的獨立區域 124
7.2.9 引用工作表中的已用區域 125
7.2.10 通過偏移格區域 127
7.2.11 格區域的引用範圍 128
7.3格區域中定位與查找 128
7.3.1 格區域的邊界 129
7.3.2 定位包含指定類型內格 130
7.3.3 查找包含特定信格 132
7.4 讀取和格區域中的數據 134
7.4.1 通過循環遍歷格讀寫數據 134
7.4.2 使用數格區域交換數據 135
7.4.3 使用選擇性粘貼 137
7.5 創建與使用名稱 139
7.5.1 Excel中的預定義名稱 139
7.5.2 格區域 139
7.5.3 Name對像和Name屬性 140
7.5.4 使用名稱 141
7.5.5 在名稱中存儲值 141
7.5.6 在名稱中存儲公式 142
7.5.7 在名稱中存儲數組 142
7.5.8 隱藏名稱 143
7.5.9 刪除名稱 143
7.6 排序和篩選數據 143
7.6.1 排序數據 143
7.6.2 自動篩選 146
7.6.3 篩選 149
第8章 使用Shape對像處理圖形對像 151
8.1 理解Shapes集合與Shape對像 151
8.1.1 Shapes集合的常用屬性和方法 151
8.1.2 Shape對像的常用屬性和方法 152
8.1.3 Shapes集合與ShapeRange集合 152
8.1.4 引用圖形對像 153
8.2 獲取圖形對像的相關信息 153
8.2.1 獲取圖形對像的名稱 154
8.2.2 獲取圖形對像的類型 155
8.2.3 獲取圖形對像的位置 156
8.3 插入與刪除圖形對像 157
8.3.1 插入自選圖形 157
8.3.2 插入圖片 159
8.3.3 選擇特定類型的圖形對像 162
8.3.4 刪除工作表中的所有圖形對像 163
8.3.5 刪除特定類型的圖形對像 163
8.4 設置圖形對像的格式 164
8.4.1 設置圖形對像的填充格式 164
8.4.2 設置圖形對像的邊框格式 166
第9章 使用Chart和ChartObject對像處理圖表 167
9.1 圖表基礎 167
9.1.1 嵌入式圖表和圖表工作表 167
9.1.2 圖表的組成結構 168
9.1.3 圖表的Excel對像模型 169
9.1.4 在VBA中引用圖表 169
9.1.5 Chart對像的常用屬性和方法 170
9.2 創建圖表 171
9.2.1 創建嵌入式圖表 171
9.2.2 創建圖表工作表 176
9.2.3 在嵌入式圖表和圖表工作表之間轉換 177
9.2.4 將所有嵌入式圖表轉換為圖表工作表 179
9.3 設置與管理圖表 179
9.3.1 更改圖表類型 180
9.3.2 選擇預置的圖表布局 180
9.3.3 自定義設置圖表布局 181
9.3.4 選擇預置的圖表樣式 183
9.3.5 自定義設置圖表格式 183
9.3.6 編輯圖表的數據繫列 185
9.3.7 將指定內容設置為圖表的數據標簽 188
9.3.8 設置所有嵌入式圖表的大小 189
9.3.9 刪除圖表 190
9.4 將圖表轉換為圖片 190
9.4.1 將單個嵌入式圖表轉換為圖片 191
9.4.2 將工作簿中的所有嵌入式圖表轉換為圖片 191
10章 使用PivotTable對像處理數據透視表 193
10.1 數據透視表基礎 193
10.1.1 數據透視表的組成結構 193
10.1.2 數據透視表的常用術語 195
10.1.3 數據透視表緩存 196
10.1.4 數據透視表的Excel對像模型 197
10.2 創建與設置數據透視表 200
10.2.1 創建基本的數據透視表 200
10.2.2 將字段添加到數據透視表中 202
10.2.3 調整和刪除字段 203
10.2.4 修改字段的名稱 204
10.2.5 設置數據透視表的布局形式 204
10.2.6 隱藏行總計和列總計 205
10.2.7 設置數據的數字格式 206
10.2.8 設置數據的彙總方式 207
10.2.9 設置數據的顯示方式 207
10.2.10 刷新數據透視表 208
11章 使用類模塊創建新的對像 209
11.1 類和類模塊簡介 209
11.2 創建類 210
11.2.1 創建基本的類 210
11.2.2 創建類的屬性 210
11.2.3 創建類的方法 213
12章 使用事件編寫自動交互的程序 215
12.1 事件編程基礎 215
12.1.1 Excel中的事件類型 215
12.1.2 事件代碼的存儲位置與輸入方法 215
12.1.3 包含參數的事件 217
12.1.4 事件觸發的先後順序 218
12.1.5 開啟與關閉事件 218
12.2 使用工作簿事件 219
12.2.1 工作簿包含的事件 219
12.2.2 Open事件 220
12.2.3 Activate事件 220
12.2.4 Deactivate事件 221
12.2.5 BeforeClose事件 221
12.2.6 BeforeSave事件 222
12.2.7 BeforePrint事件 223
12.2.8 SheetActivate事件 223
12.2.9 SheetDeactivate事件 224
12.2.10 NewSheet事件 225
12.2.11 SheetChange事件 225
12.2.12 SheetSelectionChange事件 226
12.2.13 SheetBeforeRightClick事件 226
12.2.14 SheetBeforeDoubleClick事件 227
12.3 使用工作表事件 227
12.3.1 工作表包含的事件 227
12.3.2 Activate事件 228
12.3.3 Deactivate事件 228
12.3.4 Change事件 228
12.3.5 SelectionChange事件 229
12.3.6 BeforeRightClick事件 229
12.3.7 BeforeDoubleClick事件 230
12.4 使用圖表工作表事件 230
12.5 使用應用程序事件與嵌入式圖表事件 231
12.5.1 捕獲應用程序事件 231
12.5.2 捕獲嵌入式圖表事件 235
13章 使用Excel對話框 237
13.1 使用InputBox方法 237
13.1.1 InputBox方法與InputBox函數的區別 237
13.1.2 使用InputBox方法輸入指定類型的內容 237
13.2 使用Excel的打開和另存對話框 239
13.2.1 GetOpenFilename方法 239
13.2.2 GetSaveAsFilename方法 241
13.3 使用FileDialog對像顯示和處理對話框 242
13.3.1 FileDialog對像的常用屬性和方法 242
13.3.2 顯示不同類型的對話框 243
13.3.3 指定在對話框中顯示的文件類型 244
13.3.4 在對話框中選擇一個或多個文件 245
13.3.5 對所選文件執行操作 246
13.4 使用Dialogs集合顯示Excel內置對話框 246
14章 創建用戶窗體和控件 248
14.1 理解用戶窗體和控件 248
14.1.1 用戶窗體和控件簡介 248
14.1.2 控件工具箱與控件類型 249
14.1.3 理解Controls集合 251
14.2 用戶窗體的基本操作 252
14.2.1 創建用戶窗體 252
14.2.2 設置用戶窗體的屬性 253
14.2.3 顯示和關閉用戶窗體 254
14.2.4 使用模式與無模式用戶窗體 254
14.2.5 使用變量引用特定的用戶窗體 255
14.2.6 創建特定用戶窗體的多個實例 256
14.2.7 編寫用戶窗體的事件代碼 257
14.2.8 禁用用戶窗體中的關閉按鈕 260
14.3 在用戶窗體中使用控件 260
14.3.1 在用戶窗體中添加控件 260
14.3.2 設置控件的屬性 261
14.3.3 設置控件的大小 262
14.3.4 設置控件的位置和對齊方式 263
14.3.5 設置控件的Tab鍵順序 263
14.3.6 引用用戶窗體中的控件 264
14.3.7 編寫控件的事件代碼 265
14.3.8 使用同一個事件過程處理多個控件 265
14.4 常用控件的使用方法 267
14.4.1 命令按鈕 267
14.4.2 文本框 269
14.4.3 數值調節鈕 272
14.4.4 滾動條 273
14.4.5 選項按鈕 274
14.4.6 復選框 276
14.4.7 列表框 277
14.4.8 組合框 291
14.4.9 圖像 294
14.5 用戶窗體和控件的綜合應用 296
14.5.1 創建歡迎界面 296
14.5.2 創建登錄窗口 298
14.5.3 創建顏色選擇器 300
14.5.4 創建可改變大小的對話框 303
15章 定制Excel界面環境 307
15.1 定制菜單欄 307
15.1.1 命令欄和控件的類型 307
15.1.2 創建命令欄和控件的通用方法 312
15.1.3 Excel中的所有菜單欄及其包含的控件 313
15.1.4 引用特定的菜單欄 314
15.1.5 引用菜單欄中的菜單 314
15.1.6 在內置菜單欄中添加菜單 317
15.1.7 在菜單中添加菜單項 318
15.1.8 使用Parameter屬性傳遞參數值 321
15.1.9 禁用菜單或菜單項 324
15.1.10 隱藏菜單或菜單項 325
15.1.11 重置菜單 326
15.1.12 刪除菜單或菜單項 327
15.1.13 創建新的菜單欄 328
15.2 定制工具欄 330
15.2.1 Excel中的所有工具欄及其包含的控件 330
15.2.2 工具欄控件的常用屬性 331
15.2.3 引用特定的工具欄和控件 332
15.2.4 創建新的工具欄 333
15.2.5 在內置工具欄中添加控件 337
15.2.6 禁用工具欄中的控件 337
15.2.7 重置工具欄 337
15.2.8 刪除工具欄中的控件和工具欄 338
15.3 定制快捷菜單 339
15.3.1 Excel中的所有快捷菜單及其包含的控件 339
15.3.2 在內置快捷菜單中添加子菜單和菜單項 341
15.3.3 禁用快捷菜單和菜單項 344
15.3.4 刪除快捷菜單中的菜單項和快捷菜單 345
15.3.5 創建新的快捷菜單 346
15.4 功能區開發基礎 348
15.4.1 Excel文件的內部結構 348
15.4.2 功能區的組成結構 349
15.4.3 定制功能區的一般流程和工具 350
15.4.4 功能區定制中的控件類型 351
15.4.5 控件屬性 353
15.4.6 控件回調 354
15.4.7 使用VBA可以對功能區進行的操作 355
15.5 定制功能區 357
15.5.1 創建實現控件功能的VBA過程 357
15.5.2 編寫定制功能區的RibbonX代碼 358
15.5.3 將定制功能區的工作簿更改為壓縮文件 361
15.5.4 在壓縮文件中創建customUI文件夾 362
15.5.5 將customUI.xml文件移入customUI文件夾 362
15.5.6 建立RibbonX代碼與工作簿之間的關聯 362
15.5.7 測試定制後的功能區 363
15.5.8 定制功能區時可能遇到的問題 363
16章 開發用戶自定義函數 366
16.1 用戶自定義函數基礎 366
16.1.1 理解Function過程中的參數 366
16.1.2 創建不包含任何參數的函數 367
16.1.3 創建包含一個參數的函數 368
16.1.4 創建包含兩個參數的函數 369
16.1.5 創建包含可選參數的函數 370
16.1.6 創建包含不定數量參數的函數 371
16.1.7 創建返回數組的函數 372
16.1.8 創建返回錯誤值的函數 374
16.1.9 為用戶自定義函數添加幫助信息 375
16.2 開發用戶自定義函數 377
16.2.1 從文本左側提取連續的數字 378
16.2.2 將數字中的每一位輸入到連續的格中 379
16.2.3 返回區域中一個格的地址 380
16.2.4 返回區域中後一個格的地址 380
16.2.5 返回包含特定內容的格的地址 381
16.2.6 統計區域中不重復值的數量 382
16.2.7 逆序格中的內容 383
16.2.8格背景格中的數據求和 383
16.2.9 執行多種類型的計算 384
16.2.10 返回所有工作表指定區域中的大值 385
16.2.11 判斷文件是否存在 385
16.2.12 判斷工作簿是否已被打開 386
16.2.13 判斷工作表是否存在 386
16.2.14 判斷名稱是否存在 387
16.2.15 從文件的完整路徑中提取文件名 387
17章 處理文件 388
17.1 VBA內置功能與FSO對像模型簡介 388
17.1.1 處理文件和文件夾的VBA內置語句和函數 388
17.1.2 FSO對像模型簡介 389
17.1.3 使用FSO對像模型前的準備工作 392
17.2 獲取驅動器和文件信息 393
17.2.1 獲取驅動器的相關信息 393
17.2.2 獲取文件夾的相關信息 394
17.2.3 獲取文件的相關信息 395
17.2.4 獲取文件夾中的所有子文件夾的名稱 395
17.2.5 獲取文件夾中的所有文件的名稱和類型 396
17.3 文件的基本操作 397
17.3.1 復制和移動文件 397
17.3.2 重命名文件 399
17.3.3 刪除文件 400
17.3.4 創建文件夾 401
17.4 處理文本文件 401
17.4.1 打開和關閉文本文件 402
17.4.2 使用Write語句將數據寫入文本文件 402
17.4.3 使用Print語句將數據寫入文本文件 404
17.4.4 使用Input語句讀取文本文件中的數據 406
17.4.5 使用Line Input語句讀取文本文件中的數據 407
17.4.6 使用TextStream對像讀寫文本文件 408
18章 與其他Office應用程序交互 411
18.1 與外部應用程序交互的基本概念與通用方法 411
18.1.1 在VBA中與外部應用程序交互的方式 411
18.1.2 外部可創建對像 411
18.1.3 理解前期綁定和後期綁定 412
18.1.4 使用前期綁定創建對像引用 413
18.1.5 使用後期綁定創建對像引用 414
18.1.6 引用一個已存在的應用程序實例 414
18.2 在Excel中操作Word 416
18.3 在Excel中啟動其他應用程序 417
19章 使用ADO訪問數據 419
19.1 了解結構化查詢語言 419
19.1.1 數據庫的基本概念 419
19.1.2 結構化查詢語言簡介 420
19.1.3 使用SELECT語句檢索數據 421
19.1.4 使用INSERT語句添加數據 424
19.1.5 使用UPDATE語句修改數據 425
19.1.6 使用DELETE語句刪除數據 426
19.2 ADO對像模型簡介 427
19.2.1 Connection對像 427
19.2.2 Command對像 427
19.2.3 Recordset對像 428
19.3 在Excel中使用ADO訪問數據的一般流程和具體方法 428
19.3.1 添加對ADO類型庫的引用 429
19.3.2 建立數據源的連接 429
19.3.3 從數據源中檢索數據並返回特定的記錄集 430
19.3.4 關閉數據源的連接 432
第20章 操作注冊表 433
20.1 注冊表基礎 433
20.1.1 注冊表簡介 433
20.1.2 注冊表的組織結構 433
20.1.3 創建與刪除子鍵和鍵值 434
20.2 使用VBA操作注冊表 436
20.2.1 使用SaveSetting語句將內容寫入注冊表 437
20.2.2 使用GetSetting函數讀取特定鍵值中的內容 438
20.2.3 使用GetAllSettings函數讀取特定子鍵中的所有內容 439
20.2.4 使用DeleteSetting語句刪除注冊表中的內容 440
第21章 操作VBE 442
21.1 編程控制VBE的準備工作 442
21.1.1 啟用對VBE對像模型的訪問權限 442
21.1.2 添加對VBIDE類型庫的引用 443
21.2 理解VBE對像模型 444
21.2.1 VBE對像 444
21.2.2 VBProject對像 444
21.2.3 VBComponent對像 445
21.2.4 CodeModule對像 447
21.2.5 CodePane對像 449
21.2.6 Designer對像 449
21.2.7 Reference對像 449
21.3 使用VBA編程操作VBE 450
21.3.1 使用VBA自動添加和刪除模塊 450
21.3.2 使用VBA自動編寫VBA代碼 451
21.3.3 使用VBA自動創建用戶窗體和控件並編寫事件代碼 452
第22章 創建和使用加載項 455
22.1 了解加載項 455
22.1.1 使用加載項的原因 455
22.1.2 加載項的特點與工作方式 455
22.1.3 加載項的存儲位置和管理工具 456
22.2 創建加載項 457
22.2.1 為加載項添加標題和描述信息 458
22.2.2 保護加載項中的模塊和VBA代碼 459
22.2.3 創建加載項 460
22.3 管理加載項 460
22.3.1 安裝與卸載加載項 460
22.3.2 打開與關閉加載項文件 461
22.3.3 修改並保存加載項 461
22.3.4 從“加載項”對話框中刪除加載項 462
22.4 使用VBA操作加載項 462
22.4.1 理解AddIns集合與AddIn對像 463
22.4.2 列出Excel中的所有加載項 464
22.4.3 將加載項添加到Excel中 464
22.4.4 自動安裝“加載項”對話框中的所有加載項 466
22.4.5 處理AddIn對像的事件 466
第23章 開發Excel實用程序 467
23.1 開發通用插件 467
23.1.1 通用插件與普通VBA程序的區別 467
23.1.2 通用插件開發案例 468
23.2 開發一個簡單的人事管理繫統 470
23.2.1 開發用戶登錄和身份驗證模塊 471
23.2.2 開發添加員工資料模塊 473
23.2.3 開發修改員工資料模塊 474
23.2.4 開發備份員工資料模塊 475
23.2.5 開發刪除員工資料模塊 476
23.2.6 定制功能區界面 478
附錄A VBA函數速查 479
附錄B VBA語句速查 483
附錄C VBA錯誤代碼
●