第一篇 操作自動化引言篇
第1章 操作自動化2
1.1自動化操作的價值.3
1.1.1自動化操作的必要性3
1.1.2實現操作自動化的兩個途徑4
1.2利用宏簡化日常工作5
1.2.1三分鍾學會錄製宏.5
1.2.2執行宏的方法8
1.2.3兩種方法讀懂宏代碼9
1.2.4宏的優缺點分析12
1.2.5如何發揮宏的長處.13
1.3使用VBA強化Excel功能14
1.3.1追根溯源:什麼是VBA14
1.3.2知己知彼:解析VBA的優缺點14
1.3.3窺斑見豹:從一個案例初識VBA.15
1.4 Excel VBA的發展前景.16
1.4.1簡化工作16
1.4.2開拓專業17
1.5本書架構17
1.6課後思考18
第二篇 VBA入門篇
第2章 代碼應用基礎.20
2.1區分VBE代碼窗口21
2.1.1認識VBE界麵21
2.1.2最常用的代碼存放區:標準模塊22
2.1.3工作簿事件代碼窗口:ThisWorkbook26
2.1.4工作錶事件代碼窗口:Sheet127
2.1.5窗體代碼窗口:UserForm127
2.1.6創建隱藏對象的代碼窗口:類模塊.28
2.2錄入代碼28
2.2.1代碼的存放位置28
2.2.2寫入代碼的方式28
2.2.3提升代碼的可讀性.30
2.2.4調用快速信息.35
2.3四種代碼執行方式.35
2.3.1快捷鍵調用36
2.3.2單擊按鈕執行.37
2.3.3自動執行37
2.3.4在公式中調用.39
2.4保存代碼40
2.4.1文件保存格式對VBA代碼的影響40
2.4.2單獨保存代碼模塊.41
2.5讓代碼暢通無阻41
2.5.1調整宏的安全等級.41
2.5.2添加受信任位置42
2.5.3將代碼封裝為加載項43
2.6反復調用相同代碼.43
2.6.1使用個人宏工作簿.43
2.6.2加載宏.44
2.6.3加載項.44
2.7調用代碼的幫助係統44
2.7.1什麼是幫助45
2.7.2如何從幫助中查詢代碼含義45
2.7.3調用網絡資源.47
2.8課後思考47
第3章 從概念開始認識VBA49
3.1認識過程50
3.1.1過程的分類50
3.1.2子過程的基本語法.50
3.1.3子過程的命名要求.52
3.1.4子過程的調用方法與訪問限製.53
3.1.5過程的執行順序54
3.1.6過程的遞歸56
3.2關於參數57
3.2.1參數的存在價值57
3.2.2過程名稱中的參數.57
3.2.3參數的賦值方式58
3.2.4可選參數與必選參數60
3.2.5代碼中的參數.61
3.3理解對象63
3.3.1什麼是對象63
3.3.2對象的引用層次64
3.4對象的屬性與方法.64
3.4.1認識屬性與方法65
3.4.2自動調用屬性與方法66
3.4.3怎樣纔算完整的VBA語句67
3.5對象的事件.68
3.5.1什麼是事件.68
3.5.2事件的存在價值68
3.5.3事件的分類與代碼錄入方式69
3.5.4事件的參數.71
3.6課後思考72
第4章 詳解對象及其層次結構74
4.1查看所有對象75
4.1.1從對象瀏覽器查看對象.75
4.1.2從幫助中調用對象信息.75
4.2對象的層次與引用方式.76
4.2.1對象的層次.76
4.2.2使用對象名稱引用對象.76
4.2.3使用復數形式錶示對象集閤77
4.2.4使用序號參數引用集閤中的子對象.78
4.2.5引用子對象.79
4.2.6引用活動對象80
4.2.7引用父對象.80
4.2.8利用WITH語句引用重復齣現的對象.81
4.3 Range對象83
4.3.1 Range("A1")引用方式84
4.3.2 Cells(1,1)引用方式87
4.3.3 [a1]引用方式.87
4.3.4活動單元格:ActiveCell.88
4.3.5下一個單元格:Next89
4.3.6屏幕坐標下的單元格:RangeFromPoint89
4.3.7選區:Selection、RangeSelection90
4.3.8已用區域:UsedRange92
4.3.9當前區域:CurrentRegion94
4.3.10當前數組區域:CurrentArray95
4.3.11按條件引用區域:SpecialCells96
4.3.12模擬Ctrl+方嚮鍵産生的單元格:End.99
4.3.13按偏移量重置區域引用:Offset.101
4.3.14按寬度與高度重置區域:Resize103
4.3.15引用多區域的閤集:Union104
4.3.16引用多區域的交集:Intersect104
4.3.17用名稱引用區域107
4.4圖形對象108
4.4.1 Shapes對象與子對象109
4.4.2圖形對象的名稱109
4.4.3 DrawingObjects 110
4.4.4圖形對象的類彆子集 110
4.5錶對象. 112
4.5.1錶的閤集與子對象. 112
4.5.2錶的分類 112
4.5.3活動錶. 113
4.5.4隱藏工作錶的特性. 113
4.5.5引用名字為數值的工作錶的技巧 114
4.6工作簿對象. 115
4.6.1工作簿閤集與子對象 115
4.6.2活動工作簿 115
4.6.3關於後綴名 116
4.6.4關於工作簿格式 117
4.7 Excel應用程序對象. 117
4.7.1 Excel的頂層對象:Application. 117
4.7.2調用子對象時可以省略Application嗎 118
4.7.3不同版本的Excel之間的差異. 118
4.8課後思考 119
第5章 揭密數據類型與變量、常量.121
5.1數據類型122
5.1.1區分數據類型的必要性122
5.1.2數據類型的分類123
5.1.3轉換數據類型.125
5.2定義變量127
5.2.1變量的用途128
5.2.2定義變量的方法129
5.2.3變量的命名規則130
5.2.4變量的作用域.131
5.2.5變量的生命周期133
5.2.6靜態變量與動態變量的分彆134
5.2.7聲明對象變量.136
5.2.8對象變量的初始化與釋放.137
5.3定義常量138
5.3.1常量的用途138
5.3.2常量的定義方式138
5.3.3變量與常量的異同分析140
5.4課後思考140
第6章 條件語句與循環語句.142
6.1 IF語句解析143
6.1.1條件語句的重要性.143
6.1.2 If.Then.Else的單行模式.143
6.1.3 And、Or和Not在條件語句中的作用.144
6.1.4案例解析:指定工作簿的最後開啓日期146
6.1.5 If.Then.Else的塊形式147
6.1.6塊形式的應用案例:創建日期批注.148
6.1.7嵌套使用IF語句.150
6.1.8 IF語句的常見錯誤與防錯之法.156
6.2 Select Case語句解析157
6.2.1 Select Case語句的價值.158
6.2.2 Select Case基本語法158
6.2.3多條件應用案例160
6.2.4 Select Case與IF Then語句比較163
6.3 IIF及Choose函數164
6.3.1 IIF函數語法解析.165
6.3.2 IIF函數案例應用:判斷Excel的版本號.165
6.3.3 IIF的優缺點.166
6.3.4 Choose函數語法解析167
6.3.5 Choose函數應用案例:打開搜索引擎.167
6.4 For Next語句解析.169
6.4.1循環語句的價值169
6.4.2 For Next語句基本語法169
6.4.3步長值對循環結果的影響.171
6.4.4 For Next語句應用案例171
6.5 For Each Next語句解析.175
6.5.1遍曆對象集閤175
6.5.2 For Each…Next語句基本語法175
6.5.3 For Each…Next語句應用案例:定位大於某值的單元格176
6.6 While Wend語句解析178
6.6.1 While Wend語句基本語法.178
6.6.2 While Wend語句應用案例:判斷工號是否重復179
6.7 DO Loop語句解析182
6.7.1 Do Loop語法分析.182
6.7.2 Do Loop語法一應用183
6.7.3 Do Loop語法二應用184
6.7.4 Do Loop語法三應用185
6.7.5 Do Loop語法四應用185
6.7.6總結四種循環語句的優缺點188
6.8課後思考189
第7章 4類常見對象的應用案例.191
7.1單元格對象.192
7.1.1選擇單元格.192
7.1.2篩選與復製區域的值193
7.1.3多區域復製194
7.1.4選擇性粘貼數據196
7.1.5重置已用數據區域.199
7.1.6查找所有成績為100的單元格201
7.1.7將錶示平方米和立方米後麵的2和3設為上標202
7.1.8閤並相鄰且相同的單元格.203
7.1.9按行閤並且保留所有數據.205
7.1.10隔行插入行.207
7.1.11標示選區中的重復值208
7.2圖形對象210
7.2.1批量導入圖片與圖片名稱.210
7.2.2統一錶中所有圖片大小及對齊圖片212
7.2.3批量導齣圖片.214
7.2.4插入帶圖片背景的批注216
7.3工作錶對象.219
7.3.1顯示所有隱藏的工作錶219
7.3.2創建以本月每日日期命名的工作錶220
7.3.3保護所有公式.221
7.3.4批量重命名錶.223
7.3.5查找所有工作錶中有循環引用的單元格224
7.3.6對職工錶按學曆排序225
7.3.7創建工作錶目錄227
7.4工作簿對象.228
7.4.1打開帶密碼且帶有自動宏的工作簿228
7.4.2另存工作簿且以今天的日期命名229
7.4.3將外部鏈接轉換成值230
7.4.4關閉工作簿且不保存修改內容.231
7.4.5定時保存且備份工作簿233
7.4.6重命名活動工作簿.234
7.5課後思考236
第8章 深入剖析VBA的各種事件.238
8.1事件的級彆與順序.239
8.1.1事件的級彆與代碼保存位置239
8.1.2事件的執行方式240
8.1.3事件的執行順序241
8.2禁用與啓用事件241
8.2.1臨時關閉事件.242
8.2.2防止事件的連鎖反應242
8.3工作錶事件詳解244
8.3.1工作錶事件列錶244
8.3.2 Change事件的特例245
8.3.3事件案例:激活工作錶時驗證訪問權限245
8.3.4事件案例:自動標示當前行的背景.247
8.3.5事件案例:雙擊單元格時定位最大值或最小值248
8.3.6事件案例:在特定區域右擊單元格時産生工作錶目錄.250
8.3.7事件案例:輸入錶達式時在右列自動返迴計算結果251
8.3.8事件案例:單擊目錄時可打開隱藏的工作錶252
8.3.9事件案例:實時保護已錄入數據的單元格.253
8.3.10事件案例:在狀態欄顯示當前科目的不及格人數.254
8.3.11事件案例:通過數據有效性的下拉列錶調用對應的圖片255
8.4工作簿事件詳解256
8.4.1工作簿事件列錶257
8.4.2事件案例:記錄工作簿打開次數258
8.4.3事件案例:顯示活動工作錶中的産量達標率259
8.4.4事件案例:保存工作簿時備份文件.260
8.4.5事件案例:打印數據前檢查資料是否填寫完整261
8.4.6事件案例:關閉工作簿時更新工作錶目錄.262
8.4.7事件案例:新建工作錶時調用模闆格式263
8.4.8事件案例:禁止修改總錶名稱.264
8.4.9事件案例:新建圖錶時自動設置為陰影、圓角265
8.5應用程序事件詳解.266
8.5.1應用程序與類266
8.5.2事件案例:打開任意工作簿時創建工作錶目錄266
8.5.3事件案例:新建工作簿時自動保存.268
8.6按時執行代碼270
8.6.1 OnKey方法的語法分析270
8.6.2創建計劃任務271
8.7課後思考271
第9章 處理代碼錯誤.273
9.1代碼錯誤類型分析.274
9.1.1版本問題274
9.1.2參數賦值不當274
9.1.3變量定義不準確276
9.1.4對象不存在.276
9.2錯誤處理語句277
9.2.1詳解Err對象277
9.2.2詳解Error函數.279
9.2.3 On Error Resume Next語句.280
9.2.4 On Error GoTo Line語句281
9.2.5 On Error GoTo 0語句283
9.2.6 GoSub.Return語句.284
9.3案例應用287
9.3.1錯誤處理的常規思路288
9.3.2案例應用:為軟件設計收集信息反饋的功能.289
9.3.3案例應用:根據選區的文件名批量導入圖片.292
9.3.4案例應用:一鍵屏弊錯誤值294
9.4課後思考295
第10章 使用數組提升程序效率297
10.1基本概念298
10.1.1何謂數組298
10.1.2數組的特點.298
10.1.3一維數組298
10.1.4二維數組301
10.1.5數組的參數.302
10.1.6聲明數組變量.303
10.1.7動態數組與靜態數組的分彆306
10.1.8釋放動態數組的存儲空間. 311
10.2數組函數312
10.2.1用函數創建數組312
10.2.2獲取數組元素.313
10.2.3判斷變量是否為數組314
10.2.4轉置數組314
10.2.5獲取數組的上標與下標.316
10.2.6轉換文本與數組317
10.2.7篩選數組319
10.3案例分析320
10.3.1將指定區域的單詞統一為首字母大寫.320
10.3.2羅列不及格人員姓名、科目和成績322
10.3.3將字符串閤並到區域323
10.3.4將職員錶按學曆拆分成多個工作錶325
10.3.5將選區的數據在文本與數值間互換327
10.3.6獲取兩列數據的相同項.329
10.3.7羅列至少三科不及格的學生姓名331
10.4課後思考333
第11章 處理重復值335
11.1調用內部功能336
11.1.1高級篩選336
11.1.2刪除重復項.342
11.1.3數組透視錶.345
11.2 Collection:集閤350
11.2.1集閤的特性.350
11.2.2集閤的語法.351
11.2.3使用集閤獲取區域中的不重復值354
11.2.4羅列B列重復齣現的身份證號碼356
11.3 Dictionary:字典357
11.3.1字典對象的前期綁定和後期綁定357
11.3.2字典的特點.360
11.3.3字典的屬性與方法360
11.3.4 獲取選區中的唯一值364
11.3.5對采購錶分類求和366
11.3.6對采購錶分類計數367
11.3.7對産量錶按組彆和産品分類統計368
11.4課後思考369
第12章 開發自定義函數372
12.1語法分析373
12.1.1 Function過程與Sub過程的區彆.373
12.1.2 Function過程的基本語法.373
12.1.3 Optional與ParamArray的作用與區彆.374
12.1.4自定義函數的命名規則.375
12.2開發簡單的函數.375
12.2.1開發函數的常規思路375
12.2.2 Shui:計算個人所得稅.376
12.2.3 EndRow:計算工作錶最後非空行/列的行號/列號.378
12.3開發復雜函數380
12.3.1 Replacement:替換第N次齣現的字符380
12.3.2 Look:Vlookup之升級版382
12.3.3 HeBin:按條件閤並.384
12.4開發數組函數386
12.4.1 Only:獲取一個或多個區域的唯一值.386
12.4.2 Statistics:對數據分類匯總.387
12.5為函數指定注釋.390
12.5.1 MacroOptions的功能與語法.390
12.5.2為函數Look添加注釋390
12.6課後思考392
第13章 設計程序窗體.394
13.1窗體與控件簡介.395
13.1.1窗體的功能.395
13.1.2創建與運行UserForm對象.396
13.1.3使用工具箱.398
13.1.4標簽控件400
13.1.5文本框控件.400
13.1.6命令控鈕400
13.1.7復閤框.401
13.1.8列錶框.401
13.1.9復選框.402
13.1.10選項按框402
13.1.11框架.402
13.1.12切換按鈕403
13.1.13多頁控件404
13.1.14滾動條.405
13.1.15圖像控件405
13.1.16 Flash控件405
13.1.17網頁控件406
13.2設置屬性407
13.2.1屬性窗口的用途407
13.2.2設置屬性的兩種方式407
13.2.3文本框屬性.409
13.2.4命令按鈕屬性.413
13.2.5復選框屬性.415
13.2.6列錶框屬性.417
13.2.7復閤框屬性.422
13.2.8圖像控件屬性.425
13.2.9 Flash控件屬性.426
13.2.10批量設置控件的屬性426
13.3窗體與控件的事件.427
13.3.1 UserForm對象的事件427
13.3.2控件的事件.428
13.4窗體應用實戰438
13.4.1開發多工作錶查詢窗體.438
13.4.2開發多工作錶快速錄入麵闆441
13.4.3以指定名稱批量新建或復製工作錶443
13.5課後思考448
第三篇 進階篇
第14章 類模塊應用450
14.1類模塊基礎.451
14.1.1類的概念與用途451
14.1.2聲明與調用類.451
14.2 類模塊與程序級事件453
14.2.1 在狀態欄顯示當前行的最大值與最小值地址453
14.2.2錄入數據時自動將M後麵的數字2顯示為上標.455
14.3類模塊與窗體控件.456
14.3.1何時需要使用類456
14.3.2為按鈕批量指定MouseMove事件.456
14.4課後思考459
第15章 Excel VBA與Web應用461
15.1 Web基礎知識.462
15.1.1 Web數據的收發原理.462
15.1.2 HTML以及網頁元素分析465
15.2使用Web查詢知識批量獲取匯率466
15.2.1獲取網頁數據的實際網址466
15.2.2通過錄製宏導入匯率首頁數據.468
15.2.3完善宏代碼批量導入網頁數據.469
15.3運用Web數據收發機製獲取網頁信息470
15.3.1 Web數據通訊常用對象簡介.470
15.3.2開發中英互譯工具.471
15.3.3開發火車票查詢工具474
15.4運用網頁元素分析技術實現網頁控製和讀取480
15.4.1創建及訪問IE對象480
15.4.2如何訪問網頁元素.481
15.4.3自動登錄新浪微博.482
15.5課後思考485
第16章 創建傳統工具欄與菜單487
16.1自定義工具欄488
16.1.1自定義工具欄模闆.488
16.1.2自定義工具欄二級菜單模闆489
16.2自定義工作錶菜單.490
16.3自定義單元格右鍵菜單.492
16.4課後思考493
第17章 定義Ribbon功能區選項卡.495
17.1功能區開發基礎.496
17.1.1 Ribbon的特點496
17.1.2功能區的組件圖示.496
17.1.3手動定製功能區496
17.1.4認識Ribbon代碼編輯器.497
17.1.5獲取內置按鈕圖標.498
17.2 Ribbon定製之語法分析499
17.2.1功能區代碼的結構.499
17.2.2顯示與隱藏功能區:ribbon.501
17.2.3隱藏選項卡:tab.501
17.2.4創建新選項卡:tab502
17.2.5創建新組:group.503
17.2.6創建對話框啓動器:dialogBoxLauncher505
17.2.7在組中添加命令按鈕:button507
17.2.8創建切換按鈕:toggleButton509
17.2.9標簽與復選框:labelControl/ checkBox . 511
17.2.10在按鈕之間添加分隔條:separator512
17.2.11創建彈齣式菜單:menu.513
17.2.12創建拆分按鈕:splitButton.514
17.2.13創建下拉列錶:dropDown516
17.2.14創建編輯框:editBox.517
17.2.15鎖定或隱藏內置功能518
17.3使用迴調函數強化功能區.519
17.3.1為什麼需要使用迴調函數.519
17.3.2迴調函數詳解.520
17.3.3創建1到3號纔能使用的按鈕.522
17.3.4創建按下與彈起時自動切換圖標的按鈕524
17.3.5創建一個能顯示圖形對象數量的標簽.526
17.3.6在功能區中快速查找527
17.3.7在組的標簽處顯示問候語.529
17.3.8調用大圖片創建下拉菜單.531
17.3.9通過復選框控製錯誤標識的顯示狀態.534
17.4使用模闆536
17.4.1模闆的重要性.536
17.4.2模闆的使用方法536
17.4.3製作兩個模闆.537
17.5創建Backstage 視圖.540
17.5.1 Backstage 視圖與Office按鈕540
17.5.2在Backstage視圖中添加按鈕540
17.5.3添加子選項卡、組及命令按鈕.542
17.5.4在新選項卡中創建彈齣式菜單與說明.544
17.5.5將命令按鈕顯示在兩列中.547
17.5.6創建導航菜單.550
17.5.7隱藏Backstage 視圖中的所有按鈕.552
17.6課後思考553
第18章 開發通用插件.555
18.1插件的分類.556
18.1.1什麼是插件.556
18.1.2插件的分類.556
18.1.3開發插件和編寫普通代碼的分彆556
18.2漫談加載宏.557
18.2.1加載宏工作簿的特點557
18.2.2加載宏管理器.558
18.2.3加載宏的使用方法.558
18.2.4加載宏的安全性559
18.3製作工作錶批量重命名插件559
18.3.1開發通用插件的基本步驟559
18.3.2羅列插件需求560
18.3.3設計插件窗體560
18.3.4編寫代碼562
18.3.5創建菜單與設置快捷鍵.564
18.3.6另存為加載宏565
18.3.7安裝並測試功能566
18.4課後思考567
第19章 保護代碼.569
19.1關於安全性.570
19.1.1保護代碼的必要性.570
19.1.2保護代碼的常用手法570
19.1.3 VB6.0封裝VBA代碼的基本步驟570
19.2封裝“批量重命名”插件571
19.2.1安裝VB 6.0企業版571
19.2.2創建VB工程571
19.2.3添加引用及完善外接程序描述.572
19.2.4導入窗體573
19.2.5聲明應用程序接口及變量573
19.2.6編寫菜單與功能區.574
19.2.7修改VBA代碼576
19.2.8生成DLL文件.577
19.2.9安裝與卸載插件577
19.2.10測試插件功能577
19.2.11 VB與VBA代碼的差異分析.578
19.3封裝函數579
19.3.1封裝函數的兩種方式579
19.3.2在Excel中編寫並測試函數.580
19.3.3創建VB工程580
19.3.4添加引用及注釋580
19.3.5粘貼VBA代碼並修改代碼581
19.3.6生成DLL文件.581
19.3.7安裝與卸載插件581
19.3.8測試插件功能582
19.4課後思考582
第20章 製作安裝程序.584
20.1準備工作585
20.1.1將VBA代碼轉換成安裝程序的必要性585
20.1.2製作安裝程序的常用軟件585
20.1.3 Inno Setup簡介585
20.1.4安裝Inno Setup585
20.2設計“工作錶批量命名”安裝程序.585
20.2.1準備工作585
20.2.2通過腳本嚮導生成腳本代碼586
20.2.3修改代碼並編譯成安裝文件589
20.2.4安裝軟件589
20.2.5腳本代碼含義解釋.590
20.3設計更人性化的安裝程序.591
20.3.1提示關閉Excel再安裝.591
20.3.2添加安裝密碼.592
20.3.3設計可選安裝項593
20.4課後思考594
第21章 讓VBA代碼也能撤銷.596
21.1突破撤銷限製597
21.1.1 VBA命令的撤銷限製.597
21.1.2設計可以撤銷的Sub過程的思路與步驟.597
21.1.3什麼情況適閤使用Application.OnUndo方法599
21.1.4 Application.OnRepeat方法重復執行命令.599
21.2可撤銷的“簡體轉繁體”插件.600
21.2.1編寫“簡體轉繁體”代碼.600
21.2.2將普通過程加工成可撤銷的插件600
21.3課後思考603
第22章 開發製作工資條工具.605
22.1認識工資條.606
22.1.1工資條的形式.606
22.1.2工資條工具的基本需求.606
22.2編寫工資條程序606
22.2.1編寫代碼606
22.2.2測試代碼607
22.3完善工資條工具608
22.3.1將工資條程序轉換成工具基本思路608
22.3.2完善工資條工具608
22.4課後思考612
第四篇 疑難解答篇
第23章 365個常見問題答疑.614
附錄A見隨書光盤
· · · · · · (
收起)