圖書簡介
本書從實際出發,每個實例都介紹了設計思路與知識點,避免讀者走彎路。無論是初學者還是有一定基礎的讀者,通過學習本書,都可以編制出屬於自己的應用程式。
目錄
第1篇基 礎篇
第1章初識Excel2010VBA 2
1.1VBA的功能 3
1.2認識VBA編輯器(VBE) 4
1.2.1VBE環境的設定 5
1.2.2VBE編輯器工具列 6
1.2.3工程資源管理器 6
1.2.4“屬性”面板 7
1.2.5代碼視窗 8
1.2.6對象瀏覽器 8
1.3VBE調試工具 9
1.3.1逐句調試 9
1.3.2斷點設定 9
1.3.3設定下一條語句 10
1.3.4運行到游標 10
1.3.5立即視窗 10
1.3.6懸浮視窗 10
1.3.7監視視窗 11
1.4從宏開始學習VBA 11
1.4.1了解宏 12
1.4.2錄製宏實例 13
1.4.3分析與編輯宏代碼 13
1.4.4運行宏 14
第2章VBA程式設計基礎 15
2.1數據類型 16
2.1.1數值型 17
2.1.2位元組型(Byte) 17
2.1.3字元串型(String) 17
2.1.4邏輯型(Boolean) 17
2.1.5日期型(Date) 18
2.1.6無符號型(Decimal) 18
2.1.7變體型(Variant) 18
2.1.8對象型(Object) 18
2.1.9用戶自定義型 18
2.2常量 19
2.2.1直接常量 19
2.2.2符號常量 20
2.2.3系統常量 20
2.3變數 21
2.3.1變數命名 21
2.3.2變數聲明 21
2.3.3變數的作用範圍 22
2.4認識過程與函式 23
2.4.1Sub過程 24
2.4.2Function過程 25
2.5表達式與運算符 25
2.5.1算術表達式 25
2.5.2比較運算符 26
2.5.3邏輯運算符 26
2.5.4連線運算符 27
2.5.5特殊運算符 27
2.6結構語句 28
2.6.1賦值語句 28
2.6.2輸出語句 29
2.6.3If…Then語句 29
2.6.4If…Then…Else語句以及變種 30
2.6.5SelectCase多分支語句 31
2.6.6Do…Loop語句 33
2.6.7For…Next語句 35
2.6.8ForEach…Next語句 36
2.6.9跳轉語句 37
2.7常見函式與語句 38
2.7.1注釋語句 38
2.7.2InputBox函式 39
2.7.3MsgBox函式 39
2.8數組 40
2.8.1了解數組定義及上下界 40
2.8.2多維數組 41
2.8.3動態數組 41
2.8.45個與數組相關的函式和語句 42
2.8.5在VBA中使用數組 43
第3章Excel2010VBA對象模型 45
3.1面向對象編程 46
3.1.1對象的屬性 46
3.1.2對象的方法 47
3.1.3對象的事件 47
3.2Application對象 48
3.2.1Application對象的常用屬性 48
3.2.2Application對象的常用方法 49
3.3Workbook對象 49
3.3.1Workbook對象的常用屬性 50
3.3.2Workbook對象的常用方法 50
3.4Worksheet對象 50
3.4.1Worksheet對象的常用屬性 50
3.4.2Worksheet對象的常用方法 51
3.5Range對象 52
3.5.1Range對象的引用方式 52
3.5.2Range對象的常用屬性 52
3.5.3Range對象的常用方法 53
第2篇簡單實例篇
第4章客戶管理系統 56
4.1系統概述 57
4.1.1設計思路 57
4.1.2知識點一:顯示“開發工具”選項卡 57
4.1.3知識點二:開啟有代碼的工作簿 58
4.2首頁設計 59
4.2.1首頁界面設計 60
4.2.2標籤控制項顯示效果變化代碼 63
4.2.3標籤按鈕單擊事件代碼 65
4.3“客戶資料管理”窗體設計 65
4.3.1窗體界面設計 66
4.3.2窗體初始化代碼設計 67
4.3.3“新增”按鈕代碼設計 69
4.3.4“查找”按鈕代碼設計 70
4.3.5檢查拼音函式代碼設計 71
4.3.6拼音頭字母函式代碼設計 72
4.3.7“修改”按鈕代碼設計 74
4.3.8“刪除”按鈕代碼設計 74
4.3.9“查看客戶表”按鈕代碼設計 76
4.3.10瀏覽按鈕代碼設計 76
4.3.11瀏覽按鈕狀態過程代碼設計 78
4.4“客戶資料查詢導出”窗體設計 78
4.4.1窗體界面設計 79
4.4.2窗體初始化代碼設計 80
4.4.3myCountry與myList過程代碼設計 82
4.4.4按區域篩選客戶代碼設計 82
4.4.5myListView過程代碼設計 84
4.4.6選項按鈕、文本框和複合框代碼設計 85
4.4.7“開始查詢”按鈕單擊事件代碼設計 87
4.4.8輸出報表過程代碼設計 88
4.5系統測試 88
4.5.1“客戶資料管理”窗體測試 89
4.5.2“客戶資料查詢導出”窗體測試 90
第5章學生成績管理系統 92
5.1系統概述 93
5.1.1設計思路 93
5.1.2知識點一:數據有效性 94
5.1.3知識點二:自動篩選 95
5.1.4知識點三:凍結窗格 96
5.1.5知識點四:End屬性 97
5.1.6知識點五:Sort方法 97
5.2首頁設計 98
5.3基本資料建立模組設計 100
5.3.1學生名單表設計 100
5.3.2教師與科目設定表設計 103
5.3.3年級班級設定表設計 104
5.4成績輸入與分析模組設計 105
5.4.1成績輸入模組設計 106
5.4.2年級排名模組設計 110
5.4.3成績再處理模組設計 113
5.5查詢模組設計 114
5.5.1班級學生查詢設計 114
5.5.2教師查詢設計 115
5.5.3班級成績查詢設計 116
5.6窗體設計 117
5.6.1“成績查詢”窗體設計 117
5.6.2“選擇再處理成績表”窗體設計 119
5.6.3“教師查詢”窗體設計 120
5.6.4“學生查詢”窗體設計 122
5.6.5“輸入成績班級的年級與班級名”窗體設計 125
5.7系統測試 127
5.7.1建立班級成績 128
5.7.2生成年級成績排名 129
第6章固定資產管理系統 131
6.1系統概述 132
6.1.1設計思路 132
6.1.2知識點一:設定單元格條件格式 133
6.1.3知識點二:SendKey方法 134
6.2首頁界面設計 134
6.2.1首頁組成元素 135
6.2.2首頁建立步驟 135
6.3其他無代碼表設計 136
6.3.1單項固定資產折舊明細模板表設計 137
6.3.2設定表設計 137
6.4固定資產登記表設計 138
6.4.1表界面設計 138
6.4.2設定單元格條件格式 139
6.4.3表初始化代碼 139
6.4.4工作表雙擊事件代碼 140
6.4.5固定資產保存 141
6.5固定資產登記統計表設計 143
6.5.1界面設計 143
6.5.2代碼設計 144
6.6固定資產折舊與現值統計表設計 144
6.6.1表界面設計 145
6.6.2表代碼設計 145
6.7基本設定窗體設計 148
6.7.1窗體界面設計 148
6.7.2窗體初始化與“確定”、“關閉”按鈕代碼設計 150
6.7.3初始化頁過程代碼解釋 151
6.7.4重置列表過程代碼設計 152
6.7.5多頁控制項單擊事件代碼設計 153
6.7.6“使用部門”頁控制項單擊事件代碼設計 154
6.7.7“資產類別”頁事件代碼設計 156
6.7.8“資產來源”頁事件代碼設計 158
6.8計提日期窗體設計 159
6.8.1窗體界面設計 159
6.8.2窗體代碼設計 160
6.9進度窗體設計 161
6.10利用數據窗體設計 162
6.10.1窗體界面設計 162
6.10.2窗體初始化代碼設計 163
6.10.3窗體控制項事件代碼設計 164
6.11輸入輔助窗體設計 166
6.11.1窗體界面設計 166
6.11.2窗體初始化與卸載事件代碼設計 166
6.11.3窗體控制項事件代碼設計 169
6.12公共代碼模組設計 169
6.12.1公共變數模組 169
6.12.2跳轉按鈕宏過程代碼設計 170
6.12.3資產類別拼音函式代碼設計 171
6.12.4拼音頭字母函式代碼設計 172
6.12.5獲取資產編號函式代碼設計 173
6.12.6計提折舊過程代碼設計 175
6.12.7是否計提函式代碼設計 177
6.13系統測試 178
6.13.1固定資產登記 178
6.13.2查看固定資產信息 180
6.13.3計提折舊 180
6.13.4固定資產折舊與現值統計 181
第7章進銷存管理系統 182
7.1系統概述 183
7.1.1設計思路 183
7.1.2知識點:自定義選單 184
7.2Access資料庫設計 184
7.2.1數據表設計 184
7.2.2建立資料庫代碼 186
7.3系統自定義選單 188
7.3.1子選單設計 188
7.3.2自定義選單代碼設計 189
7.4系統管理模組設計 193
7.4.1系統公共變數 193
7.4.2用戶登錄模組設計 194
7.4.3修改用戶名模組設計 196
7.4.4修改密碼模組設計 197
7.4.5用戶許可權管理模組設計 199
7.5“供貨商資料管理”窗體設計 201
7.5.1窗體界面設計 201
7.5.2窗體初始化與關閉事件代碼設計 202
7.5.3“保存”按鈕單擊事件代碼設計 203
7.5.4“新建”按鈕單擊事件代碼設計 205
7.5.5“修改”按鈕單擊事件代碼設計 205
7.5.6“刪除”按鈕單擊事件代碼設計 206
7.5.7“查詢”按鈕單擊事件代碼設計 206
7.5.8ListView控制項項目單擊事件代碼設計 208
7.5.9查詢與顯示供貨商信息過程代碼設計 208
7.5.10myListView過程代碼設計 209
7.6“商品資料管理”窗體設計 210
7.6.1窗體界面設計 210
7.6.2窗體初始化與關閉事件代碼設計 211
7.6.3“保存”按鈕單擊事件代碼設計 212
7.6.4“新建”按鈕單擊事件代碼設計 214
7.6.5“修改”按鈕單擊事件代碼設計 214
7.6.6“刪除”按鈕單擊事件代碼設計 215
7.6.7“查詢”按鈕單擊事件代碼設計 215
7.6.8ListView控制項項目單擊事件代碼設計 216
7.6.9查詢與顯示商品信息過程代碼設計 217
7.6.10myListView過程代碼設計 217
7.7“進貨資料管理”窗體設計 219
7.7.1窗體界面設計 219
7.7.2窗體初始化與關閉代碼設計 220
7.7.3“保存”按鈕單擊事件代碼設計 221
7.7.4“進貨數量”文本框事件代碼設計 223
7.7.5“商品編碼”複合框事件代碼設計 225
7.7.6“新建”按鈕單擊事件代碼設計 225
7.7.7“修改”按鈕單擊事件代碼設計 226
7.7.8“刪除”按鈕單擊事件代碼設計 227
7.7.9“查詢”按鈕單擊事件代碼設計 227
7.7.10ListView控制項項目單擊事件代碼設計 228
7.7.11查詢與顯示進貨信息過程代碼設計 228
7.7.12myListView過程代碼設計 229
7.8“銷售資料管理”窗體設計 230
7.8.1窗體界面設計 230
7.8.2窗體初始化與關閉事件代碼設計 231
7.8.3“保存”按鈕單擊事件代碼設計 232
7.8.4“商品編碼”複合框事件代碼設計 234
7.8.5“銷售數量”文本框事件代碼設計 235
7.8.6“新建”按鈕單擊事件代碼設計 236
7.8.7“修改”按鈕單擊事件代碼設計 236
7.8.8“刪除”按鈕單擊事件代碼設計 237
7.8.9“查詢”按鈕單擊事件代碼設計 238
7.8.10ListView控制項項目單擊事件代碼設計 239
7.8.11查詢與顯示銷售信息過程代碼設計 239
7.8.12myListView過程代碼設計 240
7.9“銷售統計分析”窗體設計 241
7.9.1窗體初始化與關閉事件代碼設計 242
7.9.2查詢商品名稱過程代碼設計 243
7.9.3商品名稱複合框過程代碼設計 243
7.9.4複合框事件代碼設計 243
7.9.5按鈕單擊事件代碼設計 245
7.10庫存管理模組設計 247
7.10.1窗體界面設計 247
7.10.2窗體初始化過程代碼設計 248
7.10.3“關閉”按鈕代碼設計 251
7.11“資料查詢與導出”窗體設計 251
7.11.1窗體界面設計 252
7.11.2窗體初始化與關閉過程代碼設計 252
7.11.3“查詢項目”複合框代碼設計 254
7.11.4“開始查詢”按鈕代碼設計 255
7.11.5“數據導出”按鈕代碼設計 257
7.11.6“選擇要查詢的信息種類”複合框代碼設計 258
7.11.7“運算符”複合框事件代碼設計 259
7.11.8“重設條件”按鈕代碼設計 259
7.12系統測試 260
7.12.1進貨測試 260
7.12.2銷售測試 261
7.12.3查詢與導出測試 262
第8章員工管理系統 263
8.1系統概論 264
8.1.1設計思路 264
8.1.2知識點一:名稱 264
8.1.3知識點二:使用OnTime方法 265
8.1.4知識點三:Range對象的Sort方法 265
8.1.5知識點四:CountIf函式 266
8.1.6知識點五:DateDiff函式 266
8.2工作簿對象與表設計 267
8.2.1主頁表 267
8.2.2員工檔案卡表界面設計 268
8.2.3員工檔案卡表代碼設計 269
8.2.4請假登記表設計 273
8.2.5考勤表設計 273
8.2.6庫表設計 273
8.2.7參數表設計 274
8.2.8工作簿對象設計 274
8.3設計員工檔案卡模組代碼 274
8.3.1變數定義 275
8.3.2記錄新增操作 275
8.3.3記錄修改操作 276
8.3.4記錄刪除操作 276
8.3.5記錄保存操作 278
8.3.6記錄複製貼上操作 279
8.3.7Sheet_Formula過程 280
8.3.8記錄瀏覽操作 281
8.3.9記錄的查詢操作 283
8.3.10鎖定與解鎖工作表過程 286
8.3.11隱藏批註與顯示圖片過程 287
8.4考勤簽到模組代碼設計 288
8.4.1考勤簽到窗體設計 288
8.4.2考勤簽到模組執行流程與初始化代碼 289
8.4.3設計計時器代碼 290
8.4.4設計檢查考勤月份代碼 291
8.4.5設計檢查考勤表員工資料代碼 293
8.4.6設計標記員工出勤代碼 294
8.4.7設計窗體其他功能代碼 297
8.5請假登記模組代碼設計 298
8.5.1“請假登記”窗體界面設計 299
8.5.2窗體初始化 299
8.5.3年月日複合框相關代碼設計 300
8.5.4確認請假登記代碼設計 303
8.6系統測試 306
8.6.1員工資料登記 307
8.6.2員工考勤登記 308
8.6.3員工請假登記 308
第9章商場銷售數據管理系統 309
9.1系統概論 310
9.2數據表設計 311
9.2.1基本信息資料表設計 311
9.2.2商品銷售數據資料表設計 313
9.3公共模組代碼設計 314
9.3.1公共變數模組設計 314
9.3.2啟動窗體公共過程代碼設計 315
9.3.3總查詢字元串設定過程 316
9.3.4資料庫建立與更新過程代碼設計 318
9.3.5壓縮資料庫代碼設計 322
9.4基本信息設定窗體設計 322
9.4.1窗體界面設計 323
9.4.2窗體初始化代碼 325
9.4.3“新建”按鈕代碼設計 327
9.4.4“編輯”按鈕代碼設計 330
9.4.5“刪除”按鈕代碼設計 332
9.4.6ListView控制項代碼設計 332
9.5商品銷售數據登記窗體設計 333
9.5.1窗體界面設計 333
9.5.2窗體初始化、激活與卸載代碼設計 335
9.5.3複合框與文本框改變事件代碼設計 336
9.5.4按鈕單擊事件代碼設計 337
9.5.5刷新複合框過程代碼設計 340
9.6查詢銷售數據設定窗體設計 342
9.7查詢顯示窗體設計 351
9.7.1窗體界面設計 351
9.7.2窗體事件代碼設計 352
9.7.3ListView控制項事件代碼設計 354
9.7.4“導出所有項”按鈕代碼設計 355
9.7.5“重置”按鈕代碼設計 356
9.7.6“僅顯示勾選項”按鈕代碼設計 356
9.7.7“編輯”按鈕代碼設計 359
9.7.8“關閉”按鈕代碼設計 359
9.8編輯查詢條件窗體設計 360
9.8.1窗體界面設計 360
9.8.2窗體事件代碼設計 360
9.8.3文本框改變事件 361
9.8.4“確定”按鈕代碼設計 362
9.8.5“關閉”按鈕代碼設計 362
9.9系統測試 362
9.9.1銷售數據輸入 363
9.9.2查詢銷售數據 363
9.9.3編輯銷售數據 364
第3篇複雜實例篇
第10章學生座位編排系統 366
10.1系統概述 367
10.1.1知識點一:合併單元格 367
10.1.2知識點二:定義批註 368
10.1.3知識點三:Split函式的使用 369
10.2首頁設計 369
10.2.1首頁界面設計 370
10.2.2首頁代碼設計 373
10.2.3“編排座位”宏代碼設計 373
10.3學生表設計 377
10.3.1學生表界面設計 377
10.3.2學生表代碼設計 377
10.4編排表設計 378
10.4.1編排表界面設計 378
10.4.2編排表代碼設計 378
10.5“輔助輸入”窗體設計 380
10.5.1窗體界面設計 380
10.5.2窗體初始化代碼設計 381
10.5.3“確認”按鈕單擊事件代碼設計 382
10.6“講台位置”窗體設計 383
10.6.1窗體界面設計 383
10.6.2窗體代碼設計 384
10.7“交換位置”窗體設計 384
10.7.1窗體界面設計 384
10.7.2窗體代碼設計 385
10.8“手動調整”窗體設計 385
10.8.1窗體界面設計 386
10.8.2窗體代碼設計 386
10.9“行列設定”窗體設計 388
10.9.1窗體界面設計 388
10.9.2窗體代碼設計 389
10.10系統測試 390
10.10.1座位編排設定與自動排列座位 390
10.10.2調整座位 391
第11章契約管理系統 392
11.1系統概論 393
11.1.1知識點一:工作表的可見性 393
11.1.2知識點二:隱藏或取消隱藏表 394
11.1.3知識點三:設定或取消深度隱藏 394
11.1.4知識點四:保護工作表與撤銷保護 395
11.2數據表設計 396
11.3首頁設計 397
11.3.1首頁界面設計 397
11.3.2首頁代碼設計 399
11.4模組代碼設計 400
11.4.1公共變數模組代碼設計 400
11.4.2創建資料庫程式模組代碼設計 400
11.5“用戶登錄”窗體設計 402
11.5.1窗體界面設計 402
11.5.2窗體代碼設計 403
11.6“修改用戶名”窗體設計 405
11.6.1窗體界面設計 405
11.6.2窗體代碼設計 405
11.7“修改密碼”窗體設計 406
11.7.1窗體界面設計 407
11.7.2窗體代碼設計 407
11.8“契約基本信息管理”窗體設計 409
11.8.1窗體界面設計 409
11.8.2窗體初始化與關閉事件代碼設計 411
11.8.3複合框設定代碼設計 413
11.8.4查詢、顯示契約基本信息過程代碼設計 413
11.8.5顯示契約收費情況過程代碼設計 415
11.8.6“添加類別”與“添加部門”按鈕代碼設計 416
11.8.7“新契約”與“添加”按鈕代碼設計 417
11.8.8“修改”按鈕代碼設計 420
11.8.9“刪除”按鈕代碼設計 420
11.8.10“查詢”按鈕代碼設計 421
11.8.11瀏覽記錄按鈕組代碼設計 422
11.9“契約收費信息管理”窗體設計 423
11.9.1窗體界面設計 423
11.9.2窗體初始化與關閉事件代碼設計 425
11.9.3複合框設定代碼設計 426
11.9.4查詢、顯示契約收費信息代碼設計 427
11.9.5“添加類別”按鈕代碼設計 428
11.9.6“新記錄”與“添加”按鈕代碼設計 429
11.9.7“修改”按鈕代碼設計 432
11.9.8“刪除”按鈕代碼設計 433
11.9.9“查詢”按鈕代碼設計 433
11.9.10ListView控制項項目單擊事件代碼設計 435
11.10“契約信息查詢與導出”窗體設計 435
11.10.1窗體界面設計 435
11.10.2窗體初始化與關閉事件代碼 437
11.10.3複合框設定代碼設計 438
11.10.4“重設條件”按鈕代碼設計 439
11.10.5“開始查詢”按鈕代碼設計 440
11.10.6“數據導出”按鈕代碼設計 441
11.10.7清除顯示信息過程代碼設計 442
11.11系統測試 443
11.11.1“用戶登錄”窗體測試 443
11.11.2“修改用戶名”窗體測試 443
11.11.3“修改密碼”窗體測試 444
11.11.4“契約基本信息管理”窗體測試 444
11.11.5“契約信息查詢與導出”窗體測試 446
第12章拆分與備份工作簿系統 447
12.1系統概述 448
12.1.1設計思路 448
12.1.2知識點一:Excel2010中裝載載入宏 449
12.1.3知識點二:使用ADOX庫 450
12.2資料庫表設計 451
12.3工作簿與公共模組代碼設計 452
12.3.1工作簿對象代碼設計 452
12.3.2公共變數與選單按鈕代碼設計 453
12.3.3刷新窗體語言顯示過程代碼設計 454
12.3.4刷新工作簿列表過程代碼設計 455
12.3.5保存選擇工作簿代碼設計 456
12.3.6保存已選中工作簿過程代碼設計 457
12.3.7合併工作簿過程代碼設計 458
12.3.8連結字元串與工作簿名獲取過程代碼設計 462
12.4“拆分工作簿”窗體設計 462
12.4.1窗體界面設計 463
12.4.2變數定義與窗體激活事件代碼設計 464
12.4.3刷新List控制項過程代碼設計 464
12.4.4“瀏覽拆分工作簿”文本框與“瀏覽”按鈕代碼設計 465
12.4.5“添加”按鈕單擊事件代碼設計 467
12.4.6“組別”複合框改變事件代碼設計 468
12.4.7“添加”按鈕單擊事件 469
12.4.8“刪除”按鈕單擊事件代碼設計 470
12.4.9“開始拆分”按鈕單擊事件代碼設計 471
12.4.10檔案後綴與保存檔案名稱過程代碼設計 474
12.5“選擇備份工作簿”窗體設計 474
12.5.1窗體界面設計 474
12.5.2窗體事件代碼設計 476
12.5.3工作簿列表控制項代碼設計 477
12.5.4“勾選設定”與“語言設定”框架代碼設計 478
12.5.5“打開”與“下一步”按鈕代碼設計 479
12.5.6設定控制項狀態過程代碼設計 480
12.6“選擇備份工作表”窗體設計 481
12.6.1窗體界面設計 481
12.6.2窗體激活與卸載事件代碼設計 482
12.6.3複合框改變事件代碼設計 483
12.6.4工作表列表、選中設定與按鈕代碼設計 484
12.6.5刷新標題過程代碼設計 485
12.6.6設定表名顯示狀態過程代碼設計 486
12.6.7添加刪除選定項過程代碼設計 487
12.7“保存備份檔案位置”窗體設計 488
12.7.1窗體界面設計 488
12.7.2窗體事件與ListView事件代碼設計 489
12.7.3按鈕代碼設計 490
12.7.4刷新已選工作表列表過程代碼設計 491
12.7.5刷新已選擇表過程代碼設計 492
12.7.6默認保存檔案名稱過程代碼設計 493
12.8信息提示窗體設計 494
12.8.1窗體界面設計 495
12.8.2窗體代碼設計 495
12.9系統測試 496
12.9.1拆分工作簿模組功能測試 496
12.9.2備份工作簿模組功能測試 498