內容簡介
《Excel VBA
套用案例速查手冊》是Excel VBA入門的經典教材。全書共分17章,主要是以一些基礎而簡短的VBA實例來對Excel VBA中的常用對象及其屬性和方法進行講解,包括應用程式對象、視窗、工作簿、工作表、單元格和單元格區域、圖表、數據透視表、形狀、控制項、格式化操作、檔案操作等套用示例。
這些例子都比較基礎,很容易理解,因此很容易調試並得以實現,讓您通過具體的實例來熟悉Excel VBA編程。本書在Excel 2010版本中操作編寫,本書為每個套用範例設定了“範例說明”、“範例步驟”、“知識擴展”和“提示”等模組,既容易理解,又可以讓讀者在學習VBA理論知識與實踐之外拓展知識面。
本書適合VBA入門者閱讀,可以通過本書系統地學習VBA知識,也適合已有VBA基礎,但需要擴展知識面的讀者閱讀,讓自己的程式具有更好的通用性、糾錯性及更高的執行效率。
前 言
Excel是一款市場占有率最高、使用範圍最廣的數據處理軟體。這歸功於它除了擁有強大的制表功能外,還提供二次開發平台,允許用戶開發新工具,以完成Excel本身不具備的功能;或者通過VBA實現自動化,讓某些功能全自動執行,大大提升工作效率。這使得Excel從眾多制表軟體中脫穎而出。
通過VBA進行二次開發,可以強化Excel的功能,將某些煩雜或者重複的日常工作簡化,還可以開發商業外掛程式或者小型財務系統等。可以說VBA已完全融入辦公文員的日常工作,擁有VBA就等於擁有效率。
本書目的
市場上也有大量的Excel VBA 的書籍,但大多側重於講述VBA 基本語法和理論套用。因此,筆者一直構思編寫一套“以套用案例貫穿基本理論”、“以套用案例為主線”的介紹Excel VBA的圖書。
在套用Excel VBA的過程中,筆者利用長達數年的時間,對Excel VBA的功能進行了系統的整理和歸納,將Excel VBA強大的功能和複雜的操作用簡短、易學的範例展示給廣大讀者。對熱衷於Excel的朋友,以及Excel VBA初學者快速了解和步入Excel VBA編程殿堂有所幫助。
本書結構
《Excel VBA套用案例速查手冊》是Excel VBA入門的經典教材。主要是以一些基礎而簡短的VBA實例來對Excel VBA中的常用對象及其屬性和方法進行講解,包括應用程式對象、視窗、工作簿、工作表、單元格和單元格區域、圖表、數據透視表、形狀、控制項、格式化操作、檔案操作等套用示例。這些例子都比較基礎,很容易理解,因此很容易調試並得以實現,讓您通過具體的實例來熟悉Excel VBA編程。
全書共分17章,大體可分為以下4部分。
第一部分:Excel VBA基本語法(包括第1~2章)
第二部分:Excel VBA對象模型套用(包括第3~13章)
第三部分:界面設計(包括第14章)
第四部分:高級套用(包括第15~17章)
本書特點
(1)本書中所有的套用範例都是在Excel 2010(VBA 7.0)環境下進行操作並介紹的。
(2)為了最大限度地提升讀者的知識面,本書在通過套用範例介紹基本語法的同時,提供了數百個“知識擴展”模組,從而讓讀者在學習VBA 理論知識與實踐之外,可以拓展知識面,解除心中疑惑。
(3)本書中的套用範例圖文並茂,圖片中使用桔黃色方框為操作節點進行重點提示,使讀者更易掌握和理解。
(4)本書中設定了“提示”模組,以提醒讀者在操作過程中的注意事項。
(5)使用表格擴展知識面。在書中不可能對所有的知識點都進行介紹,一些文中涉及但又不太常用的對象,使用表格對其屬性、方法和事件做了簡要介紹。
(6)本書附送光碟中包含範例檔案,讀者可方便地對其進行操作和學習。
適合讀者
本書提供了大量的範例,對VBA 的基礎理論有比較詳盡的介紹。另外,對VBA的高級知識——數組、類模組、API等也有大量的理論闡述與範例演示。
本書適合的讀者包括三類:
VBA入門者,可以通過本書系統地學習VBA知識。
已有VBA基礎,但需要擴充知識面的讀者,讓自己的程式具有更好的通用性、糾錯性及更高的執行效率。本書對程式的最佳化、糾錯等方面進行了大量的論證。
數年的時間和套用經驗造就了本書。但由於作者水平有限,紕漏之處在所難免。懇請大家多提寶貴意見。
編者
圖書目錄
第一部分 Excel VBA基本語法
第一章 宏與VBA1
第一節 宏1
範例1-1-1 顯示和隱藏“開發工具”選項卡1
範例1-1-2 設計圖書卡2
範例1-1-3 把宏指定到圖片4
第一節 宏2
範例1-1-1 顯示和隱藏“開發工具”選項卡2
範例1-1-2 設計圖書卡3
範例1-1-3 把宏指定到圖片4
範例1-1-4 把宏保存到檔案5
範例1-1-5 刪除宏7
範例1-1-6 對宏安全性進行設定8
第二節 VBA10
範例1-2-1 打開VBE11
範例1-2-2 從VBE返回Excel12
範例1-2-3 通過工程資源管理器插入一個宏模組13
範例1-2-4 通過工程資源管理器刪除一個宏模組15
範例1-2-5 為宏代碼加密15
範例1-2-6 向標準工具列中添加立即視窗命令16
範例1-2-7 在VBA中對宏進行編輯最佳化17
第二章 語法入門19
第一節 面向對象的程式設計20
範例2-1-1 創建一個類模組20
範例2-1-2 根據存在的類創建對象22
範例2-1-3 在對象瀏覽器中查看類及對象24
範例2-1-4 設定窗體尺寸及位置26
範例2-1-5 使用代碼關閉當前工作簿26
第二節 數據與數據類型27
範例2-2-1 為變數和常量命名27
範例2-2-2 聲明變數27
範例2-2-3 數據類型28
範例2-2-4 用戶自定義類型29
範例2-2-5 強制聲明變數30
範例2-2-6 使用變數31
範例2-2-7 使用局部變數31
範例2-2-8 使用全局變數32
範例2-2-9 對象變數的使用32
範例2-2-10 自定義常量的使用33
範例2-2-11 內置常量的使用34
範例2-2-12 使用一維數組35
第三節 運算符與表達式36
範例2-3-1 算術運算符及表達式36
範例2-3-2 比較運算符及表達式37
範例2-3-3 字元串運算符及表達式37
範例2-3-4 邏輯運算符及表達式37
範例2-3-5 引用運算符及表達式38
範例2-3-6 其他運算符及表達式38
第四節 語句基礎40
範例2-4-1 使用MsgBox函式輸出40
範例2-4-2 使用InputBox函式輸入42
範例2-4-3 If…Then語句43
範例2-4-4 If…Then…Else語句43
範例2-4-5 階梯電價的計算43
範例2-4-6 企業信用等級的判定44
範例2-4-7 使用While…Wend計算從1到100的累加值46
範例2-4-8 使用Do…Loop計算從1到100的累加值47
範例2-4-9 使用For…Next計算從1到100的累加值48
範例2-4-10 計算所選工作表區域之和49
範例2-4-11 使用嵌套循環解決數學問題50
範例2-4-12 使用On Error進行錯誤處理51
範例2-4-13 使用Resume語句進行錯誤處理53
第五節 過程與函式55
範例2-5-1 調用具有多個參數的 Sub 過程56
範例2-5-2 調用Fuction過程56
範例2-5-3 在Fuction過程中使用可選參數57
範例2-5-4 在Fuction過程中使用不定參數57
範例2-5-5 自定義工作表函式58
範例2-5-6 使用VBA的內置函式59
第二部分 Excel VBA對象模型套用
第三章 應用程式操作62
第一節 Application屬性操作63
範例3-1-1 顯示活動印表機的名稱63
範例3-1-2 調用“另外儲存為”對話框63
範例3-1-3 檢查並顯示編輯欄64
範例3-1-4 顯示或隱藏整個Excel的滾動條65
範例3-1-5 設定Excel視窗的大小和位置66
範例3-1-6 設定Excel為全螢幕模式66
範例3-1-7 檢查並隱藏Excel套用67
範例3-1-8 返回視窗狀態,並根據需要設定是否最小化68
範例3-1-9 在VBA中使用工作表函式69
第二節 Application對象的方法操作71
範例3-2-1 使用“打開”對話框打開檔案71
範例3-2-2 與其他應用程式通信71
範例3-2-3 為宏程式指定快捷鍵74
範例3-2-4 30秒後運行指定過程75
範例3-2-5 退出Excel77
第四章 視窗套用78
第一節 Window(s)屬性操作79
範例4-1-1 修改並獲取當前視窗的標題79
範例4-1-2 顯示單元格中的公式80
範例4-1-3 顯示和設定工作表中的格線線81
範例4-1-4 顯示和隱藏工作表標籤83
範例4-1-5 根據用戶要求調整視窗顯示比例84
範例4-1-6 自定義視窗84
範例4-1-7 隱藏視窗中的零值85
範例4-1-8 選擇合適的視圖方式86
第二節 Window對象的方法操作89
範例4-2-1 保存並關閉工作簿視窗89
第五章 工作簿套用91
第一節 Workbook屬性操作92
範例5-1-1 刪除工作簿中所有的圖表工作表92
範例5-1-2 設定共享工作簿為自動更新93
範例5-1-3 保存共享工作簿的歷史版本94
範例5-1-4 在共享工作簿中啟動修訂功能95
範例5-1-5 隱藏工作簿中的所有圖形96
範例5-1-6 顯示工作簿名稱97
範例5-1-7 檢查工作簿中是否存在宏項目98
範例5-1-8 檢查工作簿是否以唯讀方式打開98
範例5-1-9 檢查工作簿是否建議以唯讀方式打開99
範例5-1-10 檢查工作簿保存後是否發生過修改100
範例5-1-11 顯示工作簿中第一個工作表的名稱101
範例5-1-12 檢查工作簿的自動恢復功能102
範例5-1-13 取得當前打開的工作簿數103
範例5-1-14 為工作簿設定打開密碼103
範例5-1-15 檢查工作簿是否有保護104
範例5-1-16 檢查並保護工作簿106
範例5-1-17 為工作簿設定防寫密碼106
第二節 Workbook對象的方法操作108
範例5-2-1 激活工作簿108
範例5-2-2 將主題套用到工作簿108
範例5-2-3 通過ChangeFileAccess方法設定工作簿許可權110
範例5-2-4 Excel伺服器套用111
範例5-2-5 不保存退出Excel112
範例5-2-6 列印當前工作簿中的前3頁113
範例5-2-7 保護當前工作簿114
範例5-2-8 禁止指定用戶與共享工作簿的連線115
範例5-2-9 保存當前工作簿中的更改116
範例5-2-10 另保存當前工作簿中的更改117
範例5-2-11 將當前工作簿以副本保存118
範例5-2-12 取消工作簿保護119
範例5-2-13 新建工作簿120
範例5-2-14 打開工作簿120
範例5-2-15 關閉工作簿121
第三節 Workbook(s)對象的事件操作123
範例5-3-1 保存成功後提示123
範例5-3-2 保存前確認是否保存125
範例5-3-3 在工作簿中創建圖表時提示125
範例5-3-4 新建工作表後提示工作表數量126
範例5-3-5 打開工作簿時提示工作簿名稱127
第六章 工作表套用128
第一節 Worksheet屬性操作130
範例6-1-1 刪除工作簿中所有的圖表工作表130
範例6-1-2 刪除當前工作表中的所有批註131
範例6-1-3 隱藏除第一個工作表外的其他工作表132
範例6-1-4 創建目錄工作表132
範例6-1-5 刪除工作表中的空行134
範例6-1-6 限制工作表的滾動區域135
範例6-1-7 保護工作表135
範例6-1-8 頁面設定137
第二節 Worksheet對象的方法操作141
範例6-2-1 選擇工作表141
範例6-2-2 激活工作表142
範例6-2-3 把工作表複製到指定位置143
範例6-2-4 刪除空工作表144
範例6-2-5 將工作表導出為PDF文檔145
範例6-2-6 在現有工作表之後插入工作表146
範例6-2-7 將當前工作表移動到其他工作簿147
範例6-2-8 複製工作表中的內容數據148
範例6-2-9 向工作表中貼上網頁中的文字149
範例6-2-10 建立數據透視表150
範例6-2-11 為工作表設定背景152
第三節 Worksheet(s)對象的事件操作153
範例6-3-1 驗證後編輯工作簿153
範例6-3-2 改變更改內容的顏色和字型155
範例6-3-3 在工作簿中創建圖表時提示156
範例6-3-4 快速輸入默認值156
第七章 單元格套用158
第一節 Range對象的屬性操作161
範例7-1-1 設定單元格對齊方式161
範例7-1-2 自動向下行添加當前日期162
範例7-1-3 為所選單元格設定行高和列寬164
範例7-1-4 當選擇範圍發生改變時返回高度和寬度165
範例7-1-5 選區發生變化時提示行數、列數和單元格數166
範例7-1-6 突出顯示特定內容166
範例7-1-7 查看隱藏的行168
範例7-1-8 設定單元格數字格式168
第二節 Range對象的方法操作169
範例7-2-1 當工作表被激活時自動填充數據169
範例7-2-2 根據內容自動調整行高、列寬171
範例7-2-3 查看數據清單中符合特定條件的記錄172
範例7-2-4 為單元格設定框線173
範例7-2-5 保存前清空臨時工作表174
範例7-2-6 清空工作表中的超連結175
範例7-2-7 複製單元格數據176
範例7-2-8 刪除單元格178
範例7-2-9 向區域內填充相同數據179
範例7-2-10 查找並修改特定記錄的數據180
範例7-2-11 刪除數據清單中的重複行182
範例7-2-12 創建分類匯總183
範例7-2-13 對選區數據排序185
範例7-2-14 跨行合併單元格186
範例7-2-15 替換單元格中的數據188
第八章 圖表套用190
第一節 圖表基本操作192
範例8-1-1 創建圖表192
範例8-1-2 設定圖表區格式194
範例8-1-3 修改圖表類型195
範例8-1-4 圖表沒有模擬運算表時添加模擬運算表196
範例8-1-5 圖表中無坐標軸時顯示坐標軸198
範例8-1-6 顯示圖表標題並設定199
範例8-1-7 檢查和顯示圖例202
範例8-1-8 顯示和隱藏圖表204
範例8-1-9 顯示各圖表的名稱205
範例8-1-10 重新設定圖表的數據源區域205
範例8-1-11 複製和貼上圖表207
範例8-1-12 激活並刪除圖表207
範例8-1-13 在原位置複製圖表208
範例8-1-14 圖表被激活時提示209
範例8-1-15 提示選擇的元素210
第二節 迷你圖套用212
範例8-2-1 創建迷你圖212
範例8-2-2 更改迷你圖的數據源區域213
範例8-2-3 更改迷你圖的位置215
範例8-2-4 同時改變迷你圖的數據源和位置216
範例8-2-5 刪除迷你圖(組)217
範例8-2-6 更改迷你圖的類型218
範例8-2-7 設定折線亮度220
範例8-2-8 突出顯示折線圖中的標記點221
第九章 圖形套用223
第一節 圖形的屬性操作224
範例9-1-1 替換自選圖形的類型224
範例9-1-2 為圖形設定填充顏色226
範例9-1-3 設定圖形框線顏色227
範例9-1-4 為圖形指定宏229
範例9-1-5 使用內置樣式格式化圖形230
範例9-1-6 統計工作表中的圖形數量232
範例9-1-7 設定圖形中的文本233
範例9-1-8 設定部分圖形的格式235
第二節 圖形對象的方法操作237
範例9-2-1 在工作表中創建圖形237
範例9-2-2 在工作表中創建文本框238
範例9-2-3 在工作表中創建藝術字240
範例9-2-4 刪除工作表中的單個圖形241
範例9-2-5 刪除工作表中的多個圖形242
第十章 超連結與批註243
第一節 超連結操作245
範例10-1-1 創建超連結245
範例10-1-2 統計超連結的數量246
範例10-1-3 清除全部超連結247
範例10-1-4 顯示工作表中超連結指向的地址248
第二節 批註操作250
範例10-2-1 統計並顯示工作表中的批註數量250
範例10-2-2 顯示工作表中所有批註的作者250
範例10-2-3 隱藏奇數批註251
範例10-2-4 改變批註的形狀並設定格式252
範例10-2-5 插入批註並設定文本253
第十一章 篩選和排序255
第一節 自動篩選257
範例11-1-1 在指定區域建立自動篩選257
範例11-1-2 檢查自動篩選是否開啟259
範例11-1-3 篩選同時滿足多個條件的數據260
範例11-1-4 篩選滿足多個條件中任一條件的數據261
範例11-1-5 顯示高於平均值的記錄262
範例11-1-6 篩選曾作過顏色標記的記錄263
範例11-1-7 篩選姓名為兩個漢字並且姓“王”學員的記錄264
範例11-1-8 篩選不姓“王”且姓名為兩個漢字學員的記錄265
範例11-1-9 清除篩選條件266
第二節 高級篩選267
範例11-2-1 在其他位置顯示某工作單位學員記錄267
範例11-2-2 篩選“李”姓三字姓名的學員記錄269
範例11-2-3 篩選姓“李”或姓“吳”的學員記錄270
第三節 排序271
範例11-3-1 根據數值大小排序271
範例11-3-2 按字母順序排列姓名273
範例11-3-3 排序時區分大小寫274
範例11-3-4 數據清單中部分排序275
範例11-3-5 按行排序277
範例11-3-6 將默認顏色排到最前面278
範例11-3-7 對多個欄位進行排序279
第十二章 條件格式282
第一節 條件格式對象的方法操作284
範例12-1-1 突出顯示較大值284
範例12-1-2 突出顯示總分在200~240之間的數據286
範例12-1-3 突出顯示姓名中包括“王”的數據287
範例12-1-4 突出顯示總分前10名的數據288
範例12-1-5 突出顯示總分高於平均值的數據289
範例12-1-6 將總分顯示為數據條290
範例12-1-7 使用色階顯示總分數據292
範例12-1-8 使用圖示集顯示總分數據293
範例12-1-9 清除條件格式294
範例12-1-10 加粗顯示總分在260分以上的姓名295
範例12-1-11 填充總分在265分以上記錄所在的行為灰色296
範例12-1-12 提升第二個條件格式的優先權297
第二節 條件格式對象的屬性操作299
範例12-2-1 顯示工作表中的條件格式數量299
範例12-2-2 將單科成績在95分以上的成績加格線300
範例12-2-3 將單科成績95分以上的成績加圖案302
範例12-2-4 給重複值加上虛框303
範例12-2-5 更改條件格式的套用範圍304
範例12-2-6 修改條件格式中符合條件的填充顏色305
第十三章 外部數據與數據工具307
第一節 外部數據操作309
範例13-1-1 從其他Excel工作簿中獲取數據(1)309
範例13-1-2 統計並提示查詢表的數量311
範例13-1-3 獲取文本檔案的數據312
範例13-1-4 獲取網路上的數據314
範例13-1-5 從網頁上導入指定表格內容315
範例13-1-6 從其他Excel工作簿中獲取數據(2)317
範例13-1-7 刪除分析表與數據源的連線320
第二節 數據工具操作322
範例13-2-1 將一列的數據分為兩列322
範例13-2-2 刪除重複行324
範例13-2-3 為選定區域創建下拉列表325
範例13-2-4 控制輸入字元長度328
範例13-2-5 對字元長度有兩種要求329
範例13-2-6 圈釋無效成績331
範例13-2-7 清除無效成績標識圈333
第三部分 界面設計
第十四章 窗體控制項334
第一節 窗體控制項基本操作335
範例14-1-1 創建窗體335
範例14-1-2 設定窗體屬性336
範例14-1-3 向窗體中添加控制項337
範例14-1-4 設定組合框屬性339
範例14-1-5 為文本框設定密碼隱藏顯示340
範例14-1-6 設定按鈕控制項屬性341
範例14-1-7 向工具箱中添加控制項342
範例14-1-8 顯示窗體343
第二節 窗體事件程式設計345
範例14-2-1 窗體初始化時隱藏數據工作表345
範例14-2-2 當密碼輸入文本框記憶體在內容時“確定”按鈕方可
操作346
範例14-2-3 單擊“取消”按鈕關閉窗體347
範例14-2-4 單擊“確定”按鈕檢測用戶密碼348
範例14-2-5 打開工作簿時自動顯示窗體350
範例14-2-6 創建數據輸入窗體351
範例14-2-7 禁用窗體的 按鈕354
範例14-2-8 計算滯納金356
第四部分 高級套用
第十五章 資料庫操作358
第一節 使用DAO對象運算元據庫359
範例15-1-1 利用DAO創建與資料庫的連線359
範例15-1-2 查詢欄位信息360
範例15-1-3 創建資料庫361
範例15-1-4 向資料庫中添加表362
範例15-1-5 向資料庫中添加數據信息363
範例15-1-6 修改資料庫365
範例15-1-7 刪除資料庫中的數據367
第二節 使用ADO對象運算元據庫371
範例15-2-1 連線資料庫371
範例15-2-2 向資料庫中添加數據372
範例15-2-3 把資料庫導入到Excel中373
範例15-2-4 快速獲取ADO連線字元串375
第十六章 檔案系統操作378
第一節 使用命令操作檔案379
範例16-1-1 重命名檔案379
範例16-1-2 在不打開工作簿的情況下,在不同的工作簿之間
複製數據381
範例16-1-3 刪除當前資料夾下大小為0的檔案383
範例16-1-4 向文本檔案中寫入數據386
範例16-1-5 向文本檔案中寫入當前日期388
範例16-1-6 關閉所有打開的檔案389
範例16-1-7 利用文本檔案中的數據驗證密碼390
第二節 使用VBA對象操作檔案393
範例16-2-1 顯示檔案所在的磁碟394
範例16-2-2 顯示磁碟信息394
範例16-2-3 創建磁碟檔案395
範例16-2-4 判斷檔案是否存在396
範例16-2-5 向文本檔案中添加信息396
第十七章 其他套用398
第一節 API函式套用399
範例17-1-1 獲取螢幕高度和寬度399
第二節 Office組件協作402
範例17-2-1 新建Word文檔402