內容簡介
● 記錄簡單的宏以及執行其他相關操作 ● 動態操作工作簿和工作表 ● 自動生成透視表和圖表 ● 管理外部數據和外部檔案 ● 從Excel直接傳送郵件 ● 創建自定義Excel功能區界面 ● 開發和發布自定義的Excel載入項
圖書目錄
第 I 部分 Excel VBA基礎知識
第1章 電子表格套用開發入門 3
1.1 什麼是電子表格套用 3
1.2 套用開發的步驟 4
1.3 確定用戶的需求 4
1.4 對滿足這些需求的套用進行規劃 5
1.5 確定最適用的用戶界面 6
1.5.1 自定義功能區 7
1.5.2 自定義快捷選單 7
1.5.3 創建快捷鍵 7
1.5.4 創建自定義對話框 8
1.5.5 在工作表中使用ActiveX控制項 8
1.5.6 開始開發工作 9
1.6 關注最終用戶 10
1.6.1 測試套用 10
1.6.2 套用的安全問題 11
1.6.3 如何讓應用程式看起來更簡明美觀 12
1.6.4 創建用戶幫助系統 12
1.6.5 將開發成果歸檔 13
1.6.6 給用戶發布應用程式 13
1.6.7 在必要時對套用進行更新 13
1.7 其他開發問題 14
1.7.1 用戶安裝的Excel版本 14
1.7.2 語言問題 14
1.7.3 系統速度 14
1.7.4 顯示模式 15
第2章 VBA概述 16
2.1 宏錄製器 16
2.1.1 創建你的第一個宏 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環境 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 閱讀本書剩餘的章節 44
2.6.2 讓Excel來幫助編寫宏 45
2.6.3 使用幫助系統 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 變數、數據類型和常量 52
3.3.1 定義數據類型 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 數組 63
3.5.1 聲明數組 63
3.5.2 聲明多維數組 64
3.5.3 聲明動態數組 64
3.6 對象變數 64
3.7 用戶自定義的數據類型 66
3.8 內置函式 66
3.9 處理對象和集合 69
3.9.1 With-End With結構 69
3.9.2 For Each-Next結構 70
3.10 控制代碼的執行 71
3.10.1 GoTo語句 72
3.10.2 If-Then結構 72
3.10.3 Select Case結構 76
3.10.4 指令塊的循環 79
第4章 VBA的子過程 86
4.1 關於過程 86
4.1.1 子過程的聲明 87
4.1.2 過程的作用域 88
4.2 執行子過程 89
4.2.1 通過“運行子過程/用戶窗體”命令執行過程 89
4.2.2 從“宏”對話框執行過程 89
4.2.3 用Ctrl+快捷鍵組合執行過程 90
4.2.4 從功能區執行過程 91
4.2.5 從自定義快捷選單中執行過程 91
4.2.6 從另一個過程中執行過程 91
4.2.7 通過單擊對象執行過程 95
4.2.8 在事件發生時執行過程 96
4.2.9 從“立即視窗”執行過程 97
4.3 向過程中傳遞參數 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章 創建函式過程 118
5.1 子過程與函式過程的比較 118
5.2 為什麼創建自定義的函式 119
5.3 自定義函式示例 119
5.3.1 在工作表中使用函式 119
5.3.2 在VBA過程中使用函式 120
5.3.3 分析自定義函式 121
5.4 函式過程 122
5.4.1 函式的作用域 123
5.4.2 執行函式過程 124
5.5 函式過程的參數 126
5.6 函式示例 126
5.6.1 無參數的函式 126
5.6.2 帶有一個參數的函式 128
5.6.3 帶有兩個參數的函式 131
5.6.4 使用數組作為參數的函式 132
5.6.5 帶有可選參數的函式 133
5.6.6 返回VBA數組的函式 134
5.6.7 返回錯誤值的函式 136
5.6.8 帶有不定數量參數的函式 138
5.7 模擬Excel的SUM函式 139
5.8 擴展後的日期函式 142
5.9 函式的調試 143
5.10 使用“插入函式”對話框 144
5.10.1 使用MacroOptions方法 144
5.10.2 指定函式類別 146
5.10.3 手動添加函式說明 147
5.11 使用載入項存儲自定義函式 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函式的更多信息 151
第6章 了解Excel事件 152
6.1 Excel可以監視的事件類型 152
6.1.1 了解事件發生的順序 153
6.1.2 存放事件處理程式的位置 153
6.1.3 禁用事件 154
6.1.4 輸入事件處理代碼 155
6.1.5 使用參數的事件處理程式 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 監視特定單元格區域的修改 165
6.3.3 SelectionChange事件 169
6.3.4 BeforeDoubleClick事件 170
6.3.5 BeforeRightClick事件 170
6.4 監視應用程式事件 171
6.4.1 啟用應用程式級別的事件 172
6.4.2 確定工作簿何時被打開 173
6.4.3 監視應用程式級別的事件 174
6.4.4 訪問與對象無關聯的事件 174
6.4.5 OnTime事件 174
6.4.6 OnKey事件 176
第7章 VBA編程示例與技巧 179
7.1 通過示例學習 179
7.2 處理單元格區域 179
7.2.1 複製單元格區域 180
7.2.2 移動單元格區域 181
7.2.3 複製大小可變的單元格區域 181
7.2.4 選中或者識別各種類型的單元格區域 182
7.2.5 調整單元格區域大小 184
7.2.6 提示輸入單元格中的值 184
7.2.7 在下一個空單元格中輸入一個值 186
7.2.8 暫停宏的運行以便獲得用戶選中的單元格區域 187
7.2.9 計算選中單元格的數目 188
7.2.10 確定選中的單元格區域的類型 189
7.2.11 有效地循環遍歷選中的單元格區域 191
7.2.12 刪除所有空行 193
7.2.13 任意次數地複製行 194
7.2.14 確定單元格區域是否包含在另一個單元格區域內 195
7.2.15 確定單元格的數據類型 196
7.2.16 讀寫單元格區域 197
7.2.17 在單元格區域中寫入值的更好方法 198
7.2.18 傳遞一維數組中的內容 200
7.2.19 將單元格區域傳遞給Variant類型的數組 201
7.2.20 按數值選擇單元格 201
7.2.21 複製非連續的單元格區域 203
7.3 處理工作簿和工作表 204
7.3.1 保存所有工作簿 204
7.3.2 保存和關閉所有工作簿 205
7.3.3 隱藏除選區之外的區域 205
7.3.4 創建超連結內容表 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 對數組進行排序 213
7.4.6 處理一系列檔案 213
7.5 用於代碼中的一些有用函式 215
7.5.1 FileExists函式 215
7.5.2 FileNameOnly函式 216
7.5.3 PathExists函式 216
7.5.4 RangeNameExists函式 216
7.5.5 SheetExists函式 217
7.5.6 WorkbookIsOpen函式 217
7.5.7 檢索已經關閉的工作簿中的值 218
7.6 一些有用的工作表函式 220
7.6.1 返回單元格的格式信息 220
7.6.2 會說話的工作表 221
7.6.3 顯示保存或列印檔案的時間 221
7.6.4 理解對象的父對象 222
7.6.5 計算介於兩個值之間的單元格數目 223
7.6.6 確定行或列中最後一個非空的單元格 224
7.6.7 字元串與模式匹配 225
7.6.8 從字元串中提取第n個元素 226
7.6.9 拼寫出數字 227
7.6.10 多功能函式 228
7.6.11 SHEETOFFSET函式 228
7.6.12 返回所有工作表中的最大值 229
7.6.13 返回沒有重複隨機整數元素的數組 230
7.6.14 隨機化單元格區域 232
7.6.15 對單元格區域進行排序 233
7.7 Windows API調用 234
7.7.1 理解API聲明 234
7.7.2 確定檔案的關聯性 235
7.7.3 確定默認印表機的信息 236
7.7.4 確定視頻顯示器的信息 237
7.7.5 讀寫註冊表 238
第 II 部分 高級VBA技術
第8章 使用透視表 243
8.1 數據透視表示例 243
8.1.1 創建數據透視表 244
8.1.2 檢查錄製的數據透視表代碼 245
8.1.3 整理錄製的數據透視表代碼 246
8.2 創建更複雜的數據透視表 248
8.2.1 創建數據透視表的代碼 249
8.2.2 更複雜數據透視表的工作原理 250
8.3 創建多個數據透視表 251
8.4 創建轉換的數據透視表 254
第9章 使用圖表 257
9.1 關於圖表 257
9.1.1 圖表的位置 257
9.1.2 宏錄製器和圖表 258
9.1.3 Chart對象模型 258
9.2 創建嵌入式圖表 259
9.3 在圖表工作表上創建圖表 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 循環遍歷所有圖表 265
9.11 調整ChartObjects對象的大小並對齊 267
9.12 創建大量圖表 268
9.13 導出圖表 271
9.14 修改圖表中使用的數據 272
9.14.1 基於活動單元格修改圖表數據 273
9.14.2 用VBA確定圖表中使用的單元格區域 274
9.15 使用VBA在圖表上顯示任意數據標籤 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 創建未連結的圖表 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中自動執行Access任務 299
10.2.1 從Excel中運行Access查詢 299
10.2.2 從Excel運行Access宏 300
10.3 從Excel自動執行Word任務 301
10.3.1 將Excel數據傳遞給Word文檔 301
10.3.2 模擬Word文檔的郵件合併功能 302
10.4 從Excel自動執行PowerPoint任務 304
10.4.1 將Excel數據傳送到PowerPoint演示文稿中 304
10.4.2 將所有Excel圖表傳送到PowerPoint演示文稿中 305
10.4.3 將工作錶轉換成PowerPoint演示文稿 307
10.5 從Excel自動執行Outlook任務 308
10.5.1 以附屬檔案形式傳送活動工作簿 308
10.5.2 以附屬檔案形式傳送指定單元格區域 309
10.5.3 以附屬檔案形式傳送指定的單個工作表 310
10.5.4 傳送給聯繫人列表中的所有Email地址 311
10.6 從Excel啟動其他應用程式 312
10.6.1 使用VBA的Shell函式 313
10.6.2 使用Windows的ShellExecute API函式 315
10.6.3 使用AppActivate語句 316
10.6.4 激活“控制臺”對話框 317
第11章 處理外部數據和檔案 318
11.1 處理外部數據連線 318
11.2 Power Query基礎介紹 318
11.2.1 了解查詢步驟 323
11.2.2 刷新Power Query數據 324
11.2.3 管理已有的查詢 324
11.2.4 使用VBA創建動態連線 325
11.2.5 遍歷工作簿中的所有連線 327
11.3 使用ADO和VBA來提取外部數據 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 導入文本檔案的數據 336
11.5.2 將單元格區域的數據導出到文本檔案 337
11.5.3 將文本檔案的內容導出到單元格區域 338
11.5.4 記錄Excel日誌的用法 339
11.5.5 篩選文本檔案 339
11.6 執行常見的檔案操作 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 創建用戶窗體之前需要了解的內容 353
12.2 使用輸入框 353
12.2.1 VBA的InputBox函式 353
12.2.2 Excel的InputBox方法 356
12.3 VBA的MsgBox函式 359
12.4 Excel的GetOpenFilename方法 363
12.5 Excel的GetSaveAsFilename方法 366
12.6 提示輸入目錄名稱 366
12.7 顯示Excel的內置對話框 367
12.8 顯示數據記錄單 369
12.8.1 使得數據記錄單變得可以訪問 369
12.8.2 通過使用VBA來顯示數據記錄單 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 數值調節鈕 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 顯示非模態的用戶窗體 384
13.7.3 顯示基於變數的用戶窗體 384
13.7.4 載入用戶窗體 384
13.7.5 關於事件處理程式 385
13.8 關閉用戶窗體 385
13.9 創建用戶窗體的示例 386
13.9.1 創建用戶窗體 386
13.9.2 編寫代碼顯示對話框 389
13.9.3 測試對話框 390
13.9.4 添加事件處理程式 391
13.9.5 完成對話框 392
13.9.6 了解事件 392
13.9.7 數值調節鈕的事件 394
13.9.8 數值調節鈕與文本框配套使用 395
13.10 引用用戶窗體的控制項 397
13.11 自定義“工具箱” 399
13.11.1 在“工具箱”中添加新頁 399
13.11.2 自定義或組合控制項 399
13.11.3 添加新的ActiveX控制項 400
13.12 創建用戶窗體的模板 401
13.13 用戶窗體問題檢測列表 402
第14章 用戶窗體示例 403
14.1 創建用戶窗體式選單 403
14.1.1 在用戶窗體中使用命令按鈕 403
14.1.2 在用戶窗體中使用列表框 404
14.2 從用戶窗體選中單元格區域 405
14.3 創建歡迎界面 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 非模態對話框 436
15.2 顯示進度條 439
15.2.1 創建獨立的進度條 440
15.2.2 集成到用戶窗體中的進度條 444
15.2.3 創建非圖形化進度條 447
15.3 創建嚮導 448
15.3.1 為嚮導設定多頁控制項 449
15.3.2 在嚮導用戶窗體中添加按鈕 450
15.3.3 編寫嚮導按鈕的程式 450
15.3.4 編寫嚮導中的相關代碼 451
15.3.5 使用嚮導執行任務 453
15.4 模仿MsgBox函式 454
15.4.1 模仿MsgBox函式:MyMsgBox函式的代碼 455
15.4.2 MyMsgBox函式的工作原理 456
15.4.3 使用MyMsgBox函式 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 用戶窗體上的數字推盤 473
15.15 用戶窗體上的電動撲克 474
第 IV 部分 開發Excel應用程式
第16章 創建和使用載入項 477
16.1 什麼是載入項 477
16.1.1 載入項與標準工作簿的比較 477
16.1.2 創建載入項的原因 478
16.2 理解Excel的載入項管理器 480
16.3 創建載入項 481
16.4 載入項示例 482
16.4.1 為載入項示例添加描述信息 483
16.4.2 創建載入項 483
16.4.3 安裝載入項 484
16.4.4 測試載入項 485
16.4.5 發布載入項 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 最佳化載入項的性能 496
16.8 載入項的特殊問題 497
16.8.1 確保載入項已經安裝 497
16.8.2 從載入項中引用其他檔案 499
第17章 使用功能區 500
17.1 功能區基礎 500
17.2 自定義功能區 501
17.2.1 向功能區中添加按鈕 502
17.2.2 向快速訪問工具列中添加按鈕 504
17.2.3 自定義功能區的局限性 505
17.3 創建自定義的功能區 505
17.3.1 將按鈕添加到現有的選項卡中 506
17.3.2 向已有的選項卡中添加複選框 510
17.3.3 功能區控制項演示 513
17.3.4 dynamicMenu控制項示例 520
17.3.5 關於自定義功能區的其他內容 522
17.4 VBA和功能區 523
17.4.1 訪問功能區控制項 523
17.4.2 使用功能區 524
17.4.3 激活選項卡 526
17.5 創建老式工具列 526
17.5.1 老式工具列的局限性 526
17.5.2 創建工具列的代碼 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 創建一個上下文相關的快捷選單 543
第19章 為應用程式提供幫助 546
19.1 Excel應用程式的“幫助” 546
19.2 使用Excel組件的幫助系統 548
19.2.1 為幫助系統使用單元格批註 548
19.2.2 為幫助系統使用文本框 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幫助系統 556
19.4.1 使用Help方法來顯示HTML幫助信息 557
19.4.2 將“幫助”檔案與應用程式相關聯 558
19.4.3 將一個幫助主題與一個VBA函式相關聯 558
第20章 理解類模組 560
20.1 什麼是類模組 560
20.1.1 內置的類模組 561
20.1.2 自定義類模組 561
20.2 創建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 創建存儲類的類 570
20.5.1 創建CSalesRep和CSalesReps類 570
20.5.2 創建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 創建一個國際化應用程式 581
21.7 多語言應用程式 582
21.8 VBA語言的考慮 583
21.9 使用本地屬性 583
21.10 系統設定識別 584
21.11 日期和時間設定 586
附錄A VBA語句和函式引用 587
A.1 VBA語句 587
A.2 函式 590