第 I 部分 Excel VBA基礎知識
第1章 電子表格應用開發(fā)入門 3
1.1 什么是電子表格應用 3
1.2 應用開發(fā)的步驟 4
1.3 確定用戶的需求 4
1.4 對滿足這些需求的應用進行規(guī)劃 5
1.5 確定適用的用戶界面 6
1.5.1 自定義功能區(qū) 7
1.5.2 自定義快捷菜單 7
1.5.3 創(chuàng)建快捷鍵 7
1.5.4 創(chuàng)建自定義對話框 8
1.5.5 在工作表中使用ActiveX控件 8
1.5.6 開始開發(fā)工作 9
1.6 關注終用戶 10
1.6.1 測試應用 10
1.6.2 應用的安全問題 11
1.6.3 如何讓應用程序看起來更簡明美觀 12
1.6.4 創(chuàng)建用戶幫助系統(tǒng) 12
1.6.5 將開發(fā)成果歸檔 13
1.6.6 給用戶發(fā)布應用程序 13
1.6.7 在必要時對應用進行更新 13
1.7 其他開發(fā)問題 14
1.7.1 用戶安裝的Excel版本 14
1.7.2 語言問題 14
1.7.3 系統(tǒng)速度 14
1.7.4 顯示模式 15
第2章 VBA概述 16
2.1 宏錄制器 16
2.1.1 創(chuàng)建你的個宏 16
2.1.2 比較宏錄制的模式和相對模式 19
2.1.3 關于宏錄制的其他概念 22
2.2 Visual Basic編輯器概述 26
2.2.1 了解VBE組件 26
2.2.2 使用工程資源管理器 27
2.2.3 使用代碼窗口 29
2.2.4 自定義VBA環(huán)境 31
2.2.5 “編輯器格式”選項卡 32
2.2.6 “通用”選項卡 33
2.2.7 “可連接的”選項卡 33
2.3 VBA的基礎知識 34
2.3.1 了解對象 34
2.3.2 了解集合 35
2.3.3 了解屬性 35
2.3.4 了解方法 37
2.4 使用Range對象 38
2.4.1 找到Range對象的屬性 39
2.4.2 Range屬性 39
2.4.3 Cells屬性 40
2.4.4 Offset屬性 42
2.5 需要記住的基本概念 43
2.6 學習更多信息 44
2.6.1 閱讀本書剩余的章節(jié) 44
2.6.2 讓Excel來幫助編寫宏 45
2.6.3 使用幫助系統(tǒng) 45
2.6.4 使用對象瀏覽器 45
2.6.5 從網上獲取 46
2.6.6 利用用戶論壇 47
2.6.7 訪問專家博客 47
2.6.8 通過YouTube查找視頻 48
2.6.9 通過Microsoft Office Dev Center獲取信息 48
2.6.10 解析其他的Excel文件 48
2.6.11 咨詢周圍的Excel人才 48
第3章 VBA編程基礎 49
3.1 VBA語言元素概覽 49
3.2 注釋 51
3.3 變量、數(shù)據類型和常量 52
3.3.1 定義數(shù)據類型 53
3.3.2 聲明變量 54
3.3.3 變量的作用域 56
3.3.4 使用常量 58
3.3.5 使用字符串 60
3.3.6 使用日期 60
3.4 賦值語句 61
3.5 數(shù)組 63
3.5.1 聲明數(shù)組 63
3.5.2 聲明多維數(shù)組 64
3.5.3 聲明動態(tài)數(shù)組 64
3.6 對象變量 64
3.7 用戶自定義的數(shù)據類型 66
3.8 內置函數(shù) 66
3.9 處理對象和集合 69
3.9.1 With-End With結構 69
3.9.2 For Each-Next結構 70
3.10 控制代碼的執(zhí)行 71
3.10.1 GoTo語句 72
3.10.2 If-Then結構 72
3.10.3 Select Case結構 76
3.10.4 指令塊的循環(huán) 79
第4章 VBA的子過程 86
4.1 關于過程 86
4.1.1 子過程的聲明 87
4.1.2 過程的作用域 88
4.2 執(zhí)行子過程 89
4.2.1 通過“運行子過程/用戶窗體”命令執(zhí)行過程 89
4.2.2 從“宏”對話框執(zhí)行過程 89
4.2.3 用Ctrl 快捷鍵組合執(zhí)行過程 90
4.2.4 從功能區(qū)執(zhí)行過程 91
4.2.5 從自定義快捷菜單中執(zhí)行過程 91
4.2.6 從另一個過程中執(zhí)行過程 91
4.2.7 通過單擊對象執(zhí)行過程 95
4.2.8 在事件發(fā)生時執(zhí)行過程 96
4.2.9 從“立即窗口”執(zhí)行過程 97
4.3 向過程中傳遞參數(shù) 97
4.4 錯誤處理技術 100
4.4.1 捕獲錯誤 101
4.4.2 錯誤處理示例 102
4.5 使用子過程的實際示例 104
4.5.1 目標 104
4.5.2 工程需求 105
4.5.3 已經了解的信息 105
4.5.4 解決方法 105
4.5.5 初步的錄制工作 106
4.5.6 初始設置 107
4.5.7 代碼的編寫 108
4.5.8 排序過程的編寫 109
4.5.9 更多測試 113
4.5.10 修復問題 113
4.6 實用程序的可用性 116
4.7 對工程進行評估 117
第5章 創(chuàng)建函數(shù)過程 118
5.1 子過程與函數(shù)過程的比較 118
5.2 為什么創(chuàng)建自定義的函數(shù) 119
5.3 自定義函數(shù)示例 119
5.3.1 在工作表中使用函數(shù) 119
5.3.2 在VBA過程中使用函數(shù) 120
5.3.3 分析自定義函數(shù) 121
5.4 函數(shù)過程 122
5.4.1 函數(shù)的作用域 123
5.4.2 執(zhí)行函數(shù)過程 124
5.5 函數(shù)過程的參數(shù) 126
5.6 函數(shù)示例 126
5.6.1 無參數(shù)的函數(shù) 126
5.6.2 帶有一個參數(shù)的函數(shù) 128
5.6.3 帶有兩個參數(shù)的函數(shù) 131
5.6.4 使用數(shù)組作為參數(shù)的函數(shù) 132
5.6.5 帶有可選參數(shù)的函數(shù) 133
5.6.6 返回VBA數(shù)組的函數(shù) 134
5.6.7 返回錯誤值的函數(shù) 136
5.6.8 帶有不定數(shù)量參數(shù)的函數(shù) 138
5.7 模擬Excel的SUM函數(shù) 139
5.8 擴展后的日期函數(shù) 142
5.9 函數(shù)的調試 143
5.10 使用“插入函數(shù)”對話框 144
5.10.1 使用MacroOptions方法 144
5.10.2 指定函數(shù)類別 146
5.10.3 手動添加函數(shù)說明 147
5.11 使用加載項存儲自定義函數(shù) 148
5.12 使用Windows API 148
5.12.1 Windows API示例 149
5.12.2 確定Windows目錄 149
5.12.3 檢測Shift鍵 150
5.12.4 了解有關API函數(shù)的更多信息 151
第6章 了解Excel事件 152
6.1 Excel可以監(jiān)視的事件類型 152
6.1.1 了解事件發(fā)生的順序 153
6.1.2 存放事件處理程序的位置 153
6.1.3 禁用事件 154
6.1.4 輸入事件處理代碼 155
6.1.5 使用參數(shù)的事件處理程序 156
6.2 工作簿級別的事件 157
6.2.1 Open事件 158
6.2.2 Activate事件 159
6.2.3 SheetActivate事件 159
6.2.4 NewSheet事件 159
6.2.5 BeforeSave事件 160
6.2.6 Deactivate事件 160
6.2.7 BeforePrint事件 160
6.2.8 BeforeClose事件 162
6.3 檢查工作表事件 163
6.3.1 Change事件 164
6.3.2 監(jiān)視特定單元格區(qū)域的修改 165
6.3.3 SelectionChange事件 169
6.3.4 BeforeDoubleClick事件 170
6.3.5 BeforeRightClick事件 170
6.4 監(jiān)視應用程序事件 171
6.4.1 啟用應用程序級別的事件 172
6.4.2 確定工作簿何時被打開 173
6.4.3 監(jiān)視應用程序級別的事件 174
6.4.4 訪問與對象無關聯(lián)的事件 174
6.4.5 OnTime事件 174
6.4.6 OnKey事件 176
第7章 VBA編程示例與技巧 179
7.1 通過示例學習 179
7.2 處理單元格區(qū)域 179
7.2.1 復制單元格區(qū)域 180
7.2.2 移動單元格區(qū)域 181
7.2.3 復制大小可變的單元格區(qū)域 181
7.2.4 選中或者識別各種類型的單元格區(qū)域 182
7.2.5 調整單元格區(qū)域大小 184
7.2.6 提示輸入單元格中的值 184
7.2.7 在下一個空單元格中輸入一個值 186
7.2.8 暫停宏的運行以便獲得用戶選中的單元格區(qū)域 187
7.2.9 計算選中單元格的數(shù)目 188
7.2.10 確定選中的單元格區(qū)域的類型 189
7.2.11 有效地循環(huán)遍歷選中的單元格區(qū)域 191
7.2.12 刪除所有空行 193
7.2.13 任意次數(shù)地復制行 194
7.2.14 確定單元格區(qū)域是否包含在另一個單元格區(qū)域內 195
7.2.15 確定單元格的數(shù)據類型 196
7.2.16 讀寫單元格區(qū)域 197
7.2.17 在單元格區(qū)域中寫入值的更好方法 198
7.2.18 傳遞一維數(shù)組中的內容 200
7.2.19 將單元格區(qū)域傳遞給Variant類型的數(shù)組 201
7.2.20 按數(shù)值選擇單元格 201
7.2.21 復制非連續(xù)的單元格區(qū)域 203
7.3 處理工作簿和工作表 204
7.3.1 保存所有工作簿 204
7.3.2 保存和關閉所有工作簿 205
7.3.3 隱藏除選區(qū)之外的區(qū)域 205
7.3.4 創(chuàng)建超鏈接內容表 206
7.3.5 同步工作表 207
7.4 VBA技巧 208
7.4.1 切換布爾類型的屬性值 208
7.4.2 顯示日期和時間 209
7.4.3 顯示友好時間 210
7.4.4 獲得字體列表 211
7.4.5 對數(shù)組進行排序 213
7.4.6 處理一系列文件 213
7.5 用于代碼中的一些有用函數(shù) 215
7.5.1 FileExists函數(shù) 215
7.5.2 FileNameOnly函數(shù) 216
7.5.3 PathExists函數(shù) 216
7.5.4 RangeNameExists函數(shù) 216
7.5.5 SheetExists函數(shù) 217
7.5.6 WorkbookIsOpen函數(shù) 217
7.5.7 檢索已經關閉的工作簿中的值 218
7.6 一些有用的工作表函數(shù) 220
7.6.1 返回單元格的格式信息 220
7.6.2 會說話的工作表 221
7.6.3 顯示保存或打印文件的時間 221
7.6.4 理解對象的父對象 222
7.6.5 計算介于兩個值之間的單元格數(shù)目 223
7.6.6 確定行或列中后一個非空的單元格 224
7.6.7 字符串與模式匹配 225
7.6.8 從字符串中提取第n個元素 226
7.6.9 拼寫出數(shù)字 227
7.6.10 多功能函數(shù) 228
7.6.11 SHEETOFFSET函數(shù) 228
7.6.12 返回所有工作表中的值 229
7.6.13 返回沒有重復隨機整數(shù)元素的數(shù)組 230
7.6.14 隨機化單元格區(qū)域 232
7.6.15 對單元格區(qū)域進行排序 233
7.7 Windows API調用 234
7.7.1 理解API聲明 234
7.7.2 確定文件的關聯(lián)性 235
7.7.3 確定默認打印機的信息 236
7.7.4 確定視頻顯示器的信息 237
7.7.5 讀寫注冊表 238
第 II 部分 高級VBA技術
第8章 使用透視表 243
8.1 數(shù)據透視表示例 243
8.1.1 創(chuàng)建數(shù)據透視表 244
8.1.2 檢查錄制的數(shù)據透視表代碼 245
8.1.3 整理錄制的數(shù)據透視表代碼 246
8.2 創(chuàng)建更復雜的數(shù)據透視表 248
8.2.1 創(chuàng)建數(shù)據透視表的代碼 249
8.2.2 更復雜數(shù)據透視表的工作原理 250
8.3 創(chuàng)建多個數(shù)據透視表 251
8.4 創(chuàng)建轉換的數(shù)據透視表 254
第9章 使用圖表 257
9.1 關于圖表 257
9.1.1 圖表的位置 257
9.1.2 宏錄制器和圖表 258
9.1.3 Chart對象模型 258
9.2 創(chuàng)建嵌入式圖表 259
9.3 在圖表工作表上創(chuàng)建圖表 261
9.4 修改圖表 261
9.5 使用VBA激活圖表 262
9.6 移動圖表 262
9.7 使用VBA使圖表取消激活 264
9.8 確定圖表是否被激活 264
9.9 從ChartObjects或Charts集合中刪除圖表 264
9.10 循環(huán)遍歷所有圖表 265
9.11 調整ChartObjects對象的大小并對齊 267
9.12 創(chuàng)建大量圖表 268
9.13 導出圖表 271
9.14 修改圖表中使用的數(shù)據 272
9.14.1 基于活動單元格修改圖表數(shù)據 273
9.14.2 用VBA確定圖表中使用的單元格區(qū)域 274
9.15 使用VBA在圖表上顯示任意數(shù)據標簽 277
9.16 在用戶窗體中顯示圖表 279
9.17 理解圖表事件 281
9.17.1 使用圖表事件的一個示例 282
9.17.2 為嵌入式圖表啟用事件 284
9.17.3 示例:在嵌入式圖表上使用圖表事件 285
9.18 VBA制圖技巧 287
9.18.1 在整個頁面上打印嵌入式圖表 287
9.18.2 創(chuàng)建未鏈接的圖表 287
9.18.3 用MouseOver事件顯示文本 289
9.18.4 滾動圖表 291
9.19 使用迷你圖 292
第10章 與其他應用程序的交互 296
10.1 了解Microsoft Office自動化 296
10.1.1 了解“綁定”概念 296
10.1.2 一個簡單的自動化示例 298
10.2 從Excel中自動執(zhí)行Access任務 299
10.2.1 從Excel中運行Access查詢 299
10.2.2 從Excel運行Access宏 300
10.3 從Excel自動執(zhí)行Word任務 301
10.3.1 將Excel數(shù)據傳遞給Word文檔 301
10.3.2 模擬Word文檔的郵件合并功能 302
10.4 從Excel自動執(zhí)行PowerPoint任務 304
10.4.1 將Excel數(shù)據發(fā)送到PowerPoint演示文稿中 304
10.4.2 將所有Excel圖表發(fā)送到PowerPoint演示文稿中 305
10.4.3 將工作表轉換成PowerPoint演示文稿 307
10.5 從Excel自動執(zhí)行Outlook任務 308
10.5.1 以附件形式發(fā)送活動工作簿 308
10.5.2 以附件形式發(fā)送指定單元格區(qū)域 309
10.5.3 以附件形式發(fā)送指定的單個工作表 310
10.5.4 發(fā)送給聯(lián)系人列表中的所有Email地址 311
10.6 從Excel啟動其他應用程序 312
10.6.1 使用VBA的Shell函數(shù) 313
10.6.2 使用Windows的ShellExecute API函數(shù) 315
10.6.3 使用AppActivate語句 316
10.6.4 激活“控制面板”對話框 317
第11章 處理外部數(shù)據和文件 318
11.1 處理外部數(shù)據連接 318
11.2 Power Query基礎介紹 318
11.2.1 了解查詢步驟 323
11.2.2 刷新Power Query數(shù)據 324
11.2.3 管理已有的查詢 324
11.2.4 使用VBA創(chuàng)建動態(tài)連接 325
11.2.5 遍歷工作簿中的所有連接 327
11.3 使用ADO和VBA來提取外部數(shù)據 328
11.3.1 連接字符串 328
11.3.2 聲明記錄集 329
11.3.3 引用ADO對象庫 330
11.3.4 以編程方式使用ADO連接Access 331
11.3.5 對活動工作簿使用ADO 332
11.4 處理文本文件 334
11.4.1 打開文本文件 334
11.4.2 讀取文本文件 335
11.4.3 編寫文本文件 335
11.4.4 獲取文件序號 335
11.4.5 確定或設置文件位置 335
11.4.6 讀寫語句 336
11.5 文本文件操作示例 336
11.5.1 導入文本文件的數(shù)據 336
11.5.2 將單元格區(qū)域的數(shù)據導出到文本文件 337
11.5.3 將文本文件的內容導出到單元格區(qū)域 338
11.5.4 記錄Excel日志的用法 339
11.5.5 篩選文本文件 339
11.6 執(zhí)行常見的文件操作 340
11.6.1 使用與VBA文件相關的指令 341
11.6.2 使用FileSystemObject對象 345
11.7 壓縮和解壓縮文件 347
11.7.1 壓縮文件 347
11.7.2 解壓縮文件 348
第 III 部分 操作用戶窗體
第12章 使用自定義對話框 353
12.1 創(chuàng)建用戶窗體之前需要了解的內容 353
12.2 使用輸入框 353
12.2.1 VBA的InputBox函數(shù) 353
12.2.2 Excel的InputBox方法 356
12.3 VBA的MsgBox函數(shù) 359
12.4 Excel的GetOpenFilename方法 363
12.5 Excel的GetSaveAsFilename方法 366
12.6 提示輸入目錄名稱 366
12.7 顯示Excel的內置對話框 367
12.8 顯示數(shù)據記錄單 369
12.8.1 使得數(shù)據記錄單變得可以訪問 369
12.8.2 通過使用VBA來顯示數(shù)據記錄單 370
第13章 用戶窗體概述 371
13.1 Excel如何處理自定義對話框 371
13.2 插入新的用戶窗體 372
13.3 向用戶窗體中添加控件 372
13.4 “工具箱”中的控件 373
13.4.1 復選框 373
13.4.2 組合框 374
13.4.3 命令按鈕 374
13.4.4 框架 374
13.4.5 圖像 374
13.4.6 標簽 375
13.4.7 列表框 375
13.4.8 多頁 375
13.4.9 選項按鈕 375
13.4.10 RefEdit 375
13.4.11 滾動條 375
13.4.12 數(shù)值調節(jié)鈕 375
13.4.13 TabStrip 375
13.4.14 文本框 376
13.4.15 切換按鈕 376
13.5 調整用戶窗體的控件 377
13.6 調整控件的屬性 378
13.6.1 使用“屬性”窗口 378
13.6.2 共同屬性 379
13.6.3 滿足鍵盤用戶的需求 381
13.7 顯示用戶窗體 383
13.7.1 調整顯示位置 384
13.7.2 顯示非模態(tài)的用戶窗體 384
13.7.3 顯示基于變量的用戶窗體 384
13.7.4 加載用戶窗體 384
13.7.5 關于事件處理程序 385
13.8 關閉用戶窗體 385
13.9 創(chuàng)建用戶窗體的示例 386
13.9.1 創(chuàng)建用戶窗體 386
13.9.2 編寫代碼顯示對話框 389
13.9.3 測試對話框 390
13.9.4 添加事件處理程序 391
13.9.5 完成對話框 392
13.9.6 了解事件 392
13.9.7 數(shù)值調節(jié)鈕的事件 394
13.9.8 數(shù)值調節(jié)鈕與文本框配套使用 395
13.10 引用用戶窗體的控件 397
13.11 自定義“工具箱” 399
13.11.1 在“工具箱”中添加新頁 399
13.11.2 自定義或組合控件 399
13.11.3 添加新的ActiveX控件 400
13.12 創(chuàng)建用戶窗體的模板 401
13.13 用戶窗體問題檢測列表 402
第14章 用戶窗體示例 403
14.1 創(chuàng)建用戶窗體式菜單 403
14.1.1 在用戶窗體中使用命令按鈕 403
14.1.2 在用戶窗體中使用列表框 404
14.2 從用戶窗體選中單元格區(qū)域 405
14.3 創(chuàng)建歡迎界面 407
14.4 禁用用戶窗體的關閉按鈕 408
14.5 改變用戶窗體的大小 409
14.6 在用戶窗體中縮放和滾動工作表 411
14.7 列表框技巧 412
14.7.1 向列表框控件中添加條目 413
14.7.2 確定列表框中選中的條目 417
14.7.3 確定列表框中的多個選中條目 417
14.7.4 單個列表框中的多個列表 418
14.7.5 列表框條目的轉移 419
14.7.6 在列表框中移動條目 420
14.7.7 使用多列的列表框控件 422
14.7.8 使用列表框選中工作表中的行 423
14.7.9 使用列表框激活工作表 425
14.7.10 通過文本框來篩選列表框 428
14.8 在用戶窗體中使用多頁控件 429
14.9 使用外部控件 431
14.10 使標簽動畫化 433
第15章 高級用戶窗體技術 436
15.1 非模態(tài)對話框 436
15.2 顯示進度條 439
15.2.1 創(chuàng)建獨立的進度條 440
15.2.2 集成到用戶窗體中的進度條 444
15.2.3 創(chuàng)建非圖形化進度條 447
15.3 創(chuàng)建向導 448
15.3.1 為向導設置多頁控件 449
15.3.2 在向導用戶窗體中添加按鈕 450
15.3.3 編寫向導按鈕的程序 450
15.3.4 編寫向導中的相關代碼 451
15.3.5 使用向導執(zhí)行任務 453
15.4 模仿MsgBox函數(shù) 454
15.4.1 模仿MsgBox函數(shù):MyMsgBox函數(shù)的代碼 455
15.4.2 MyMsgBox函數(shù)的工作原理 456
15.4.3 使用MyMsgBox函數(shù) 457
15.5 帶有可移動控件的用戶窗體 457
15.6 沒有標題欄的用戶窗體 459
15.7 使用用戶窗體模擬工具欄 460
15.8 使用用戶窗體來模仿任務面板 462
15.9 可調整大小的用戶窗體 463
15.10 用一個事件處理程序處理多個用戶窗體控件 466
15.11 在用戶窗體中選擇顏色 468
15.12 在用戶窗體中顯示圖表 470
15.12.1 將圖表保存為GIF文件 471
15.12.2 更改圖像控件的Picture屬性 471
15.13 使用戶窗體半透明 471
15.14 用戶窗體上的數(shù)字推盤 473
15.15 用戶窗體上的電動撲克 474
第 IV 部分 開發(fā)Excel應用程序
第16章 創(chuàng)建和使用加載項 477
16.1 什么是加載項 477
16.1.1 加載項與標準工作簿的比較 477
16.1.2 創(chuàng)建加載項的原因 478
16.2 理解Excel的加載項管理器 480
16.3 創(chuàng)建加載項 481
16.4 加載項示例 482
16.4.1 為加載項示例添加描述信息 483
16.4.2 創(chuàng)建加載項 483
16.4.3 安裝加載項 484
16.4.4 測試加載項 485
16.4.5 發(fā)布加載項 485
16.4.6 修改加載項 485
16.5 比較XLAM和XLSM文件 486
16.5.1 XLAM文件中的VBA集合成員 486
16.5.2 XLSM和XLAM文件的可見性 487
16.5.3 XLSM和XLAM文件的工作表和圖表工作表 487
16.5.4 訪問加載項中的VBA過程 488
16.6 用VBA操作加載項 491
16.6.1 向AddIns集合中添加項 491
16.6.2 從AddIns集合中刪除項 492
16.6.3 AddIn對象屬性 492
16.6.4 作為工作簿訪問加載項 495
16.6.5 AddIn對象事件 496
16.7 優(yōu)化加載項的性能 496
16.8 加載項的特殊問題 497
16.8.1 確保加載項已經安裝 497
16.8.2 從加載項中引用其他文件 499
第17章 使用功能區(qū) 500
17.1 功能區(qū)基礎 500
17.2 自定義功能區(qū) 501
17.2.1 向功能區(qū)中添加按鈕 502
17.2.2 向快速訪問工具欄中添加按鈕 504
17.2.3 自定義功能區(qū)的局限性 505
17.3 創(chuàng)建自定義的功能區(qū) 505
17.3.1 將按鈕添加到現(xiàn)有的選項卡中 506
17.3.2 向已有的選項卡中添加復選框 510
17.3.3 功能區(qū)控件演示 513
17.3.4 dynamicMenu控件示例 520
17.3.5 關于自定義功能區(qū)的其他內容 522
17.4 VBA和功能區(qū) 523
17.4.1 訪問功能區(qū)控件 523
17.4.2 使用功能區(qū) 524
17.4.3 激活選項卡 526
17.5 創(chuàng)建老式工具欄 526
17.5.1 老式工具欄的局限性 526
17.5.2 創(chuàng)建工具欄的代碼 526
第18章 使用快捷菜單 529
18.1 命令欄簡介 529
18.1.1 命令欄的類型 529
18.1.2 列出快捷菜單 530
18.1.3 引用命令欄 531
18.2 引用命令欄中的控件 531
18.3 命令欄控件的屬性 532
18.4 顯示所有的快捷菜單項 533
18.5 使用VBA自定義快捷菜單 534
18.6 重置快捷菜單 536
18.6.1 禁用快捷菜單 537
18.6.2 禁用快捷菜單項 538
18.6.3 向“單元格”快捷菜單中添加一個新項 538
18.6.4 向快捷菜單添加一個子菜單 540
18.6.5 將快捷菜單限制到單個工作簿 542
18.7 快捷菜單與事件 542
18.7.1 自動添加和刪除菜單 542
18.7.2 禁用或隱藏快捷菜單項 543
18.7.3 創(chuàng)建一個上下文相關的快捷菜單 543
第19章 為應用程序提供幫助 546
19.1 Excel應用程序的“幫助” 546
19.2 使用Excel組件的幫助系統(tǒng) 548
19.2.1 為幫助系統(tǒng)使用單元格批注 548
19.2.2 為幫助系統(tǒng)使用文本框 549
19.2.3 使用工作表來顯示幫助文本 550
19.2.4 在用戶窗體中顯示幫助信息 551
19.3 在Web瀏覽器中顯示“幫助” 554
19.3.1 使用HTML文件 554
19.3.2 使用一個MHTML文件 555
19.4 使用HTML幫助系統(tǒng) 556
19.4.1 使用Help方法來顯示HTML幫助信息 557
19.4.2 將“幫助”文件與應用程序相關聯(lián) 558
19.4.3 將一個幫助主題與一個VBA函數(shù)相關聯(lián) 558
第20章 理解類模塊 560
20.1 什么是類模塊 560
20.1.1 內置的類模塊 561
20.1.2 自定義類模塊 561
20.2 創(chuàng)建NumLock類 562
20.2.1 插入類模塊 562
20.2.2 給類模塊添加VBA代碼 563
20.2.3 使用CNumLock類 564
20.3 屬性、方法和事件編程 565
20.3.1 對象屬性編程 565
20.3.2 對象的方法編程 566
20.3.3 類模塊事件 567
20.4 QueryTable事件 567
20.5 創(chuàng)建存儲類的類 570
20.5.1 創(chuàng)建CSalesRep和CSalesReps類 570
20.5.2 創(chuàng)建CInvoice和CInvoices類 572
20.5.3 用對象填充父類 573
20.5.4 計算傭金 574
第21章 兼容性問題 576
21.1 什么是兼容性 576
21.2 兼容性問題的類型 577
21.3 避免使用新功能 578
21.4 在Mac機器上是否可用 579
21.5 處理64位Excel 580
21.6 創(chuàng)建一個國際化應用程序 581
21.7 多語言應用程序 582
21.8 VBA語言的考慮 583
21.9 使用本地屬性 583
21.10 系統(tǒng)設置識別 584
21.11 日期和時間設置 586
附錄A VBA語句和函數(shù)引用 587
A.1 VBA語句 587
A.2 函數(shù) 590