EXCEL2007VBA開發技術大全
作 者:傅靖,李冬,羅剛君編著出版社:電子工業出版社
出版時間:2008-10-1
頁 數:700頁
開 本:16開
ISBN:9787121071706
定價:75.00元
內 容 簡 介
此書從讀者所需出發,採取先基礎、後實例,以及從零開始循序漸進的講解方式,全面、系統且深入地介紹Excel2007VBA編程技術。讀者無論有無基礎,都可以輕鬆學習,並高效掌握。書中的內容豐富實用,通過基礎知識和套用示例的結合併穿插許多VBA編程技巧和設計規範等知識,提供了詳細的編程思路和大量的代碼範例。從而指導讀者學習Excel2007VBA編程技術,最終完成從入門到精通的大跨越。本書隨附光碟一張,其中包括書中所有示例的素材檔案。本書適合廣大ExcelVBA的初、中級用戶使用,同時也可作為大中專院校相關專業學生、VBA程式設計師,以及社會相關培訓班的難得教材。
前 言
本書的編寫目的:Excel2007相對於以前版本的Excel,做出了巨大的跳躍。在檔案格式上,Excel工作簿由以往的二進制檔案格式(.xls、.xla和xlt等)變成開放的XML檔案格式(.xlsm、.xlam、.xltm、.xlsx、.xlax和.xltx等);在界面上,傳統的選單和工具列被換成了功能區,並且圖表外觀也煥然一新;在功能上,增加和改進了一系列功能,例如豐富的條件格式、可調整的編輯欄、函式記憶式鍵入、新的OLAP公式和多維數據集函式、改進的排序和篩選功能,以及Excel表格的增強功能等。
這些調整和變化勢必造成Excel對象模型的改變,為用戶的學習和使用帶來困難,而且目前圖書市場上比較缺乏全面、系統且深入介紹Excel2007VBA編程技術的書籍。本書正是為了彌補這種不足編寫的,書中針對Excel2007新的對象模型,全面深入地剖析Excel2007VBA中的各個Excel對象及其使用方法。
本書的內容框架
本書是一本ExcelVBA綜合開發參考大全,書中幾乎囊括了使用ExcelVBA開發Excel應用程式的全部知識,同時在講解中結合了大量實用並具有代表性的示例。本書共23章,分為4個部分。各個部分涉及的技術既相互獨立,又相互聯繫。書中逐步引導讀者深入學習並掌握ExcelVBA的編程知識、方法和技巧,是ExcelVBA愛好者和開發人員必備的案頭參考書。
第1部分基礎入門篇
第1章介紹如何使用宏錄製器錄製宏,以及如何運行宏,並幫助讀者認識和定製VBA集成開發環境。
第2章介紹Excel2007對象模型、Application(應用程式)、Workbook(工作簿)和Worksheet(工作表)等主要對象,著重介紹最常用的Range(區域)對象,以及一個非常有用,但往往被開發人員忽視的Name(名稱)對象。
第3章介紹標識符、運算符、表達式和數據類型等程式設計中的各種基本概念,結合筆者在Excel二次開發中的經驗,總結並提出了VBA代碼規範、提高VBA代碼運行效率的方法及各種有益的VBA編程習慣。
第2部分鞏固提高篇
第4章介紹數組的基本概念,說明如何實現數組與Excel的Range及Name對象之間的互動,並且介紹如何使用幾個常用的數組內置函式和一些有用的自定義數組函式。
第5章介紹如何操作用戶窗體及ActiveX控制項和窗體控制項。
第6章全面說明Excel的事件過程的基本原理,並具體分析工作表、圖表和工作簿事件的使用方法。
第7章介紹如何創建兩種不同類型的圖表(嵌入式圖表和圖表工作表),以及如何編輯圖表系列,同時介紹如何使用數組賦值並為圖表添加標籤。
第8章介紹如何創建並運算元據透視表。
第9章介紹如何創建Excel表,並使用自動篩選和記錄單等對象,以及如何使用AdvanceFilter方法。
第10章分析並介紹各種不同類型的錯誤,以及如何編寫錯誤處理程式,然後介紹不同的錯誤調試工具及技術。
第11章全面講解功能區的基礎界面,並通過示例說明如何使用VBA訪問功能區及使用RibbonX代碼定製功能區。
第3部分高級編程篇
第12章介紹如何在Excel2007中創建和控制命令欄及快捷選單。
第13章介紹結構化查詢語言SQL及其最常用的4種語句(SELECT、INSERT、UPDATE和DELETE),並介紹ADO中的幾個頂級對象,如何在Excel中使用ADO,並使用ADO訪問Access和Excel中的數據。
第14章詳細介紹順序、隨機及二進制檔案,說明如何操作檔案、資料夾,並使用檔案系統對象FSO。
第15章介紹如何使用ExcelVBA來實現Excel與Internet的互動。
第16章介紹XML的一些基礎知識,並說明如何實現使用VBA來實現XML的自動處理。
第17章詳細介紹類模組的基礎知識,說明如何使用類模組創建自定義對象,並使用類模組捕獲應用程式事件和嵌入式圖表事件等。
第18章介紹WindowsAPI的基礎知識,以及如何在ExcelVBA中調用API實現凍結用戶窗體、獲取系統信息、捕獲按鍵狀態,改變用戶窗體樣式等操作。
第19章介紹不同類型的載入項,以及如何使用這些載入項。
第20章介紹使用不同方式與其他Office組件建立連線(晚期綁定和早期綁定),以及如何控制Word、Access及Outlook等組件。
第21章介紹VBE對象模型及其主要對象,以及如何操作VBProject中的各個對象、創建窗體組件並為VBE添加選單項等。
第22章分析並介紹在編寫國際化應用程式中應該注意的問題,以及如何實現不同語言的切換。
第4部分綜合系統篇
第23章通過兩個綜合系統實例綜合套用VBA的編程技術,使讀者可以快速提高編程水平。
本書的特點歸納
與同類書相比,本書主要有如下4個特色。(1)實力派作者的力作,融匯了作者大量的工作經驗與心得體會。
(2)內容全面、系統且實用,從零開始、循序漸進,針對性和實踐性強。
(3)實例豐富且套用範圍廣泛,可以滿足讀者“一冊學通”的願望。
(4)穿插大量VBA編程技巧和設計規範知識,提供詳細的編程思路和代碼注釋。手把手地引導讀者從入門到精通,實現從初學者到ExcelVBA高級開發人員的跨越。
光碟中的內容
本書隨附光碟中包括了本書中用到的所有示例,讀者閱讀相應的知識點後可以使用對應的示例反覆多次上機練習,以加深和鞏固對知識點的理解和掌握。本書讀者對象
對於ExcelVBA初學者,這是一本不可多得的VBA入門教材;對於有一定基礎的中高級水平的ExcelVBA用戶,本書提供了對ExcelVBA各個知識點的深入剖析,並提供了相應的示例,可以幫助其快速提高二次開發水平。本書同時也可作為大中專院校相關專業學生,以及社會相關培訓班的理想教材。作者介紹
本書作者都是大型Office論壇的版主,具有豐富的ExcelVBA編程經驗。本書主要由傅靖、李冬和羅剛君編寫,參與編寫的人還有鍾波、段左英、李洪麗、楊利美、苗素麗、劉永美、謝汝祥、郭能進、何文祥、何玉鳳、廖日坤、金鎮、李寧宇、黃小惠、廖濟林、龐麗梅、邱遠彬、黃桂群、劉偉捷、黃乘傳、李彥超、付軍鵬、張廣安及張洪波等,他們在資料的收集、整理和校對方面做了大量的工作。從而最大限度地保證了書稿內容的系統、全面和實用,在此一併向其表示感謝!目 錄
第1部分基礎入門篇第1章ExcelVBA起步2
1.1使用宏錄製器3
1.1.1錄製宏3
1.1.2確保“開發工具”選項卡可見3
1.1.3成功錄製宏的因素4
1.1.4錄製模式:相對模式或絕對模式4
1.1.5錄製選項7
1.1.6完成錄製8
1.1.7編輯代碼9
1.1.8錄製宏的限制10
1.1.9安全性問題11
1.2運行宏13
1.2.1打開“宏”對話框的方式13
1.2.2快捷鍵方式13
1.2.3表單控制項方式14
1.2.4ActiveX控制項方式15
1.2.5快速訪問工具列方式16
1.2.6VBE視窗方式17
1.3VBA集成開發環境17
1.3.1訪問VBA集成開發環境17
1.3.2IDF中的各組件18
1.3.3“工程資源管理器”視窗19
1.3.4“屬性”視窗21
1.3.5“對象瀏覽器”視窗22
1.3.6“代碼”視窗24
1.4定製集成開發環境29
1.4.1“編輯器”選項卡29
1.4.2“編輯器格式”選項卡32
1.4.3“通用”選項卡33
1.4.4“可連線的”選項卡34
1.4.5定製工具列和選單欄34
1.5使用系統幫助35
1.6認識信任中心36
1.7小結42
第2章Excel的對象模型及其主要對象43
2.1Excel2007對象模型44
2.1.1Objects對象及對象層次結構44
2.1.2集合44
2.1.3屬性45
2.1.4方法46
2.1.5事件46
2.1.6獲取幫助47
2.1.7對象瀏覽器48
2.1.8使用“立即”視窗來調試代碼49
2.2Application對象49
2.2.1全局對象50
2.2.2Active屬性50
2.2.3DisplayAlerts屬性51
2.2.4ScreenUpdating屬性51
2.2.5Evaluation方法52
2.2.6StatusBar屬性53
2.2.7SendKeys方法54
2.2.8OnTime方法56
2.3Workbooks工作簿集合對象57
2.3.1創建一個新的工作簿57
2.3.2打開工作簿58
2.3.3保存和關閉所有工作簿58
2.3.4與工作簿相關的3個
1.1.4自定義函式59
2.3.5使用自定義函式完成的一些工作簿操作60
2.4Worksheets工作表集合對象62
2.5Range對象概述63
2.6Range對象的常用屬性68
2.6.1Value屬性69
2.6.2Text屬性69
2.6.3Count及Areas屬性70
2.6.4Address屬性71
2.6.5HasFormula屬性72
2.6.6Font屬性73
2.6.7Interior屬性73
2.6.8Formula屬性75
2.6.9NumberFormat屬性75
2.7Range對象的常用方法76
2.7.1Activate和Select方法76
2.7.2Copy和Paste方法77
2.7.3Clear和Delete方法77
2.8返回Range對象的方法78
2.8.1Range屬性78
2.8.2Cells屬性81
2.8.3Offset屬性82
2.8.4Columns和Rows屬性82
2.8.5Resize屬性84
2.8.6用CurrentRegion屬性84
2.8.7End屬性85
2.8.8Union和Interset方法86
2.8.9SpecialCells方法86
2.9操作Range對象的示例87
2.9.1快速定位並填充區域中滿足條件的單元格87
2.9.2快速定位並刪除滿足條件的所有數據行88
2.9.3根據選擇區域執行相應的操作91
2.10使用名稱93
2.10.1名稱及“名稱管理器”對話框93
2.10.2在Excel中創建並使用名稱96
2.10.3Names集合和Name對象99
2.10.4添加指向區域的名稱100
2.10.5在名稱中保存數據101
2.10.6隱藏名稱102
2.10.7處理Excel內置名稱103
2.10.8改變名稱指向的區域103
2.10.9查找名稱104
2.11小結109
第3章VBA語言基礎110
3.1程式設計基本概念111
3.1.1標識符111
3.1.2運算符與表達式113
3.1.3VBA代碼規範116
3.1.4提高VBA代碼運行效率122
3.1.5各種有益的VBA編碼習慣124
3.2數據類型128
3.2.1基本數據類型128
3.2.2自定義數據類型130
3.2.3數據類型間的轉換131
3.3常量與變數132
3.3.1常量132
3.3.2變數134
3.3.3OptionExplicit語句135
3.3.4常量和變數的關係136
3.4VBA中兩種與用戶互動的簡單方式136
3.4.1使用MsgBox函式輸出136
3.4.2使用InputBox函式獲取簡單的輸入138
3.4.3InputBox方法140
3.5語句142
3.5.1賦值語句142
3.5.2注釋語句143
3.5.3結束語句144
3.5.4With語句145
3.6小結146
第2部分鞏固提高篇
第4章數組148
4.1數組的基本概念149
4.2聲明數組149
4.3靜態數組149
4.4動態數組150
4.5為數組元素賦值151
4.6數組與Excel對象的互動152
4.6.1二維數組與Excel區域152
4.6.2數組與Excel區域Range對象的互動153
4.6.3數組與Excel名稱Name對象的互動156
4.6.4使用“監視”視窗查看數組的值157
4.7常用的數組內置函式158
4.7.1LBound和Ubound函式158
4.7.2Array和IsArray函式158
4.7.3Erase函式160
4.7.4Split和Join函式161
4.7.5Filter函式161
4.7.6INDEX函式162
4.7.7Transpose函式164
4.8運算元組的自定義函式165
4.8.1鞏固數組基礎知識165
4.8.2自定義數組函式167
4.9小結175
第5章用戶窗體及常用內部控制項176
5.1顯示用戶窗體177
5.2創建用戶窗體177
5.3直接訪問窗體中的控制項179
5.4阻止關閉按鈕182
5.5維護數據列表183
5.6非模態用戶窗體188
5.6.1非模態用戶窗體特點188
5.6.2進度指示條188
5.7可變用戶窗體名190
5.8控制項概述190
5.9窗體控制項和ActiveX控制項190
5.10ActiveX控制項191
5.10.1滾動條控制項191
5.10.2微調按鈕控制項192
5.10.3複選框控制項192
5.10.4選項按鈕控制項193
5.11窗體控制項194
5.12動態ActiveX控制項196
5.13圖表中的控制項198
5.14小結199
第6章理解Excel的事件200
6.1事件過程介紹201
6.1.1事件概述201
6.1.2與事件過程相關的概念201
6.1.3一個對象的可用事件201
6.1.4自動生成事件外殼代碼203
6.1.5事件代碼位置205
6.1.6事件層次及事件引發順序205
6.1.7嵌入式圖表對象和應用程式對象208
6.1.8同一對象的不同事件的引發順序208
6.1.9避免同一事件在不同層次對象中的繼續引發209
6.1.10Excel對象的事件210
6.2工作表事件210
6.2.1可用的工作表事件210
6.2.2啟用事件211
6.2.3工作表計算211
6.3圖表事件212
6.3.1可用的圖表事件212
6.3.2利用雙擊提供簡單的格式化圖表功能213
6.4工作簿事件215
6.4.1可用的工作簿事件215
6.4.2保存修改216
6.4.3頁眉和頁腳216
6.5小結217
第7章圖表218
7.1圖表概述219
7.2創建嵌入式圖表220
7.2.1宏錄製器生成的代碼220
7.2.2整理錄製宏代碼221
7.3創建位於圖表工作表中的圖表222
7.3.1使用宏錄製器生成的代碼222
7.3.2整理錄製宏代碼223
7.4編輯圖表中的系列223
7.5創建數組系列圖表225
7.6使用數組賦值圖表的數據系列227
7.7操作圖表系列公式SERIES230
7.7.1圖表系列SERIES公式的語法及參數230
7.7.2獲取圖表系列公式中的各部分值231
7.8添加圖表標籤234
7.9小結235
第8章數據透視表236
8.1創建數據透視表237
8.1.1準備數據源237
8.1.2創建數據透視表237
8.1.3查看錄製的代碼238
8.1.4整理錄製代碼239
8.2數據透視表快取集合PivotCaches241
8.3數據透視表集合PivotTables241
8.4數據透視表欄位集合PivotFields241
8.4.1在已有數據透視表中添加欄位241
8.4.2改變數據透視表欄位布局242
8.4.3改變數據透視表欄位布局244
8.5處理計算欄位CalculatedField245
8.6數據欄位的所有數據項集合PivotItems246
8.6.1分組246
8.6.2Visible屬性249
8.6.3CalculatedItems集合250
8.7生成數據透視圖PivotChart250
8.8使用外部數據源252
8.9小結253
第9章利用VBA管理數據列表254
9.1結構化數據及數據列表255
9.2排序區域255
9.3創建一個Excel表258
9.4排序Excel表259
9.5自動篩選259
9.5.1AutoFilter對象261
9.5.2Filter對象261
9.5.3使用日期自定義篩選262
9.6使用自動篩選的綜合實例263
9.6.1準備工作簿及添加
9.6.1ActiveX控制項263
9.6.2填充組合框263
9.6.3添加組合框的Click事件過程及其調用的篩選過程264
9.6.4複製篩選數據行到新建工作表中266
9.6.5處理可見行267
9.6.6按準確日期篩選268
9.7使用高級篩選在不同工作簿之間篩選並傳遞數據269
9.7.1定義名稱270
9.7.2組織判斷條件Criteria區域270
9.7.3插入表單控制項並編寫VBA過程271
9.8記錄單271
9.9小結273
第10章錯誤處理與程式調試274
10.1錯誤類型275
10.1.1語法錯誤275
10.1.2運行時錯誤275
10.1.3邏輯錯誤275
10.1.43種錯誤類型的比較276
10.2錯誤對象Err277
10.3編寫完美的無錯程式280
10.3.1分析功能並初次完成代碼280
10.3.2代碼並不完美280
10.3.3代碼仍然不完美281
10.3.4代碼還是不完美282
10.3.5放棄編寫完美的代碼283
10.3.6更換運行時錯誤的處理方式283
10.4運行時錯誤處理284
10.4.1未經處理和經過處理的錯誤284
10.4.2錯誤處理的一般步驟284
10.4.3錯誤處理機制的深層運用290
10.4.4複雜錯誤處理機制之一:函式返回型292
10.4.5複雜錯誤處理機制之二:錯誤重拋型295
10.5編寫處理錯誤的自定義函式298
10.5.1判斷工作簿是否打開的自定義函式298
10.5.2判斷工作表是否存在的自定義函式299
10.5.3判斷給定名稱是否存在299
10.5.4判斷給定變數是否是布爾型變數300
10.6程式調試概述301
10.6.1VBA提供的調試工具301
10.6.2“調試”工具列301
10.6.3處理不易解決錯誤的通用步驟302
10.6.4錯誤捕獲設定302
10.7程式的3種模式及其切換304
10.7.1設計模式304
10.7.2運行模式304
10.7.3中斷模式305
10.8跟蹤代碼305
10.8.1兩種常用的設定斷點方法305
10.8.2跟蹤代碼的方法及其選擇307
10.9使用調試視窗309
10.9.1“本地”視窗309
10.9.2“立即”視窗310
10.9.3“監視”視窗313
10.9.4“調用堆疊”對話框316
10.10調試常用快捷鍵317
10.11使用書籤快速切換317
10.12小結318
第11章功能區319
11.1功能區的基礎界面320
11.1.1功能區中的選項卡320
11.1.2功能區的特點320
11.1.3快速訪問工具列321
11.2使用VBA訪問功能區321
11.2.1Excel2007中的CommandBar對象321
11.2.2訪問一個功能區控制項321
11.2.3CommandBars對象處理功能區的所有相關方法323
11.2.4激活選項卡324
11.2.5VBA和功能區325
11.3使用RibbonX代碼定製功能區325
11.3.1定製功能區的特點325
11.3.2一個簡單的RibbonX示例326
11.3.3示例剖析及知識總結328
11.3.4功能區XML檔案參考329
11.3.5另一個RibbonX示例330
11.3.6新增一個選項卡332
11.3.7定製功能區總小結336
11.4小結338
第3部分高級編程篇
第12章命令欄及快捷選單340
12.1工具列、選單欄和快捷選單341
12.2Excel內置工具列342
12.3所有級別的控制項344
12.4創建新選單348
12.5傳遞參數350
12.6刪除選單350
12.7創建工具列351
12.8快捷選單354
12.9顯示彈出式命令欄356
12.10小結358
第13章使用ADO的數據訪問359
13.1結構化查詢語言360
13.1.1SELECT語句360
13.1.2INSERT語句362
13.1.3UPDATE語句363
13.1.4DELETE語句363
13.2ADO概述363
13.2.1資料庫連線對象Connection364
13.2.2記錄集對象Recordset368
13.2.3欄位對象Field374
13.2.4命令對象Command374
13.2.5二進制數據流或文本流對象Stream376
13.2.6錯誤集合和錯誤對象Errors&Error377
13.2.7ADO運算元據庫的一般過程377
13.3在Excel應用程式中使用ADO378
13.4使用ADO訪問Access中資料庫378
13.4.1連線到MicrosoftAccess數據源378
13.4.2使用純文本查詢從MicrosoftAccess中獲取數據379
13.4.3使用存儲查詢從MicrosoftAccess中獲取數據381
13.4.4插入數據383
13.4.5更新數據384
13.4.6刪除數據386
13.4.7在MicrosoftAccess中使用普通無格式文本SQL插入、
10.3.1更新和刪除記錄386
13.5使用ADO訪問Excel中數據389
13.5.1查詢Excel工作簿389
13.5.2在Excel工作簿中插入和更新記錄391
13.6使用ADO查詢文本檔案392
13.7小結394
第14章檔案編程395
14.1檔案的基本概念396
14.1.1檔案結構396
14.1.2檔案分類396
14.1.3檔案的訪問類型397
14.2檔案處理的一般步驟397
14.3檔案處理中的簡單函式和語句397
14.4順序檔案401
14.4.1打開順序檔案401
14.4.2關閉順序檔案402
14.4.3順序檔案的寫操作402
14.4.4順序檔案的讀操作405
14.4.5順序檔案的讀操作示例406
14.4.6使用靈活的分隔設定408
14.4.7生成HTML格式的檔案410
14.4.8生成XML格式的檔案411
14.5隨機檔案413
14.5.1打開和關閉413
14.5.2寫操作414
14.5.3讀操作415
14.5.4修改、追加和刪除記錄415
14.6二進制檔案416
14.6.1打開和關閉416
14.6.2讀寫操作416
14.6.33種不同類型檔案的典型讀寫操作語句417
14.7操作檔案和資料夾417
14.7.1VBA中有關目錄和檔案的操作語句及函式417
14.7.2綜合實例423
14.8檔案系統對象FSO426
14.8.1FSO對象模型及
14.6.3FileSyetemObject對象426
14.8.2Driver對象及獲取驅動器信息428
14.8.3folder對象及處理資料夾430
14.8.4file對象與處理檔案432
14.9小結436
第15章Excel和Internet437
15.1使用VBA創建超連結438
15.1.1使用宏錄製器記錄插入超連結過程438
15.1.2獲取關鍵對象及方法438
15.1.3編寫使用插入超連結的代碼438
15.1.4使用FollowHyperlink方法439
15.2Internet中的工作簿442
15.3使用VBA創建和發布網頁442
15.3.1PublishObjects和PublishObject對象443
15.4基於Internet的查詢446
15.4.1在工作簿中打開Web網頁446
15.4.2使用Web查詢447
15.4.3解析Web網頁以獲取特定信息449
15.5小結450
第16章Excel和XML451
16.1XML是Excel的明日之星452
16.2XML基礎452
16.2.1XML聲明453
16.2.2處理指令453
16.2.3注釋453
16.2.4元素和根元素453
16.2.5屬性454
16.2.6名稱空間454
16.2.7查看和編輯一個XML文檔455
16.2.8直接處理XML數據456
16.2.9創建並處理自定義XML映射458
16.3使用VBA自動化處理XML461
16.3.1打開一個XML文檔直接映射到列表461
16.4使用DOM和XPath操作XML檔案465
16.4.1使用DOM對象載入XML檔案466
16.4.2協同使用ADO和DOM將Excel數據轉換為XML467
16.4.3使用DOM和XPath操作XML檔案470
16.5小結475
第17章類模組476
17.1類和類模組477
17.1.1類和類模組477
17.2類模組的屬性478
17.3屬性剖析479
17.3.1私有成員變數479
17.3.2PropertyLet過程480
17.3.3PropertyGet過程480
17.3.4Property作用域480
17.3.5實現用戶定義類型屬性481
17.3.6實現唯讀屬性481
17.3.7在客戶應用程式中使用屬性482
17.3.8在Collection類中使用批量賦值函式482
17.3.9在集合類中提供自己的Exists屬性483
17.4類模組方法483
17.4.1自定義方法的作用域483
17.4.2為自定義方法傳遞參數484
17.4.3實現自定義類方法484
17.5類模組事件484
17.5.1Initialize事件484
17.5.2Terminate事件485
17.5.3實現自定義事件486
17.6類模組的其他知識點488
17.6.1類模組的Instancing屬性488
17.6.2允許用戶使用ForEach……Next語句488
17.6.3使用枚舉常數488
17.6.4錯誤處理489
17.6.5使用Dictionary對象489
17.7創建自定義對象489
17.8改進自定義對象的屬性過程491
17.9為自定義對象創建集合492
17.9.1在標準模組中使用Collection集合對象492
17.9.2在類模組中使用Collection集合對象493
17.10封裝495
17.11捕獲應用程式事件496
17.12嵌入式圖表事件497
17.13捕獲用戶窗體控制項事件500
17.14在工程間引用類502
17.15小結503
第18章理解並調用WindowsAPI504
18.1API基礎505
18.1.1API的概念505
18.1.2DLL的含義505
18.1.3API函式505
18.1.4API數據類型507
18.1.5Handle、hwnd和hDC509
18.2使用API的基本步驟511
18.2.1聲明API函式511
18.2.2調用API函式515
18.3剖析API調用516
18.4返回API中的錯誤描述文本518
18.4.1編寫API錯誤返回函式518
18.4.2調用錯誤信息返回函式520
18.5API示例520
18.5.1凍結用戶窗體520
18.5.2將檔案刪除到資源回收筒中523
18.5.3獲取系統信息524
18.5.4捕獲Shift、Ctrl及Alt鍵的狀態527
18.5.5改變用戶窗體樣式528
18.6小結535
第19章載入項536
19.1載入項概述537
19.2Excel載入項537
19.2.1概述537
19.2.2保護工程以隱藏代碼538
19.2.3創建載入項538
19.2.4關閉載入項539
19.2.5代碼變化539
19.2.6保存更改540
19.2.7安裝一個載入項540
19.2.8從“可用載入宏”列表中移除一個載入項541
19.3自動化載入項542
19.3.1創建一個簡單的單向通信載入項GetSequence542
19.3.2在Excel中註冊自動化載入項544
19.3.3使用自動化載入項545
19.3.4創建一個複雜的雙向通信自動化載入項546
19.4小結552
第20章控制其他Office組件554
20.1建立連結555
20.1.1晚期綁定555
20.1.2早期綁定557
20.2在Word中打開文檔558
20.3訪問當前的活動Word文檔559
20.4創建一個新的Word文檔560
20.5在Excel中使用ADO技術操作Access數據561
20.6綜合使用Access、Excel和Outlook562
20.7小結566
第21章操作VBE567
21.1開始前的準備568
21.2VBE及其對象模型569
21.2.1VBE對象模型569
21.2.2VBE模型中的對象570
21.2.3Excel和VBE對象模型之間的聯繫571
21.2.4引用VBE中的對象571
21.3處理VBProject中的各個對象573
21.3.1測試指定組件的存在573
21.3.2在一個工程中添加模組574
21.3.3在一個模組中添加過程575
21.3.4創建一個事件過程576
21.3.5刪除工程中的模組578
21.3.6刪除模組中的過程578
21.3.7刪除工程中的所有VBA代碼580
21.3.8列出工程中所有組件的名稱及類型580
21.3.9列出模組中的所有過程581
21.3.10返回過程的聲明部分及其他信息582
21.3.11計算一個Component中代碼總行數584
21.3.12計算一個工程中的總代碼行數585
21.3.13將一個VBComponent導出為文本檔案586
21.3.14在工程間複製模組588
21.3.15在模組中搜尋文本590
21.3.16新建一個工作簿並在其中寫入代碼590
21.3.17在操作VBE時防止螢幕閃動591
21.4操作窗體組件592
21.4.1用代碼創建指定數目和大小的按鈕592
21.4.2窗體控制項的Designer對象593
21.5在VBE編輯器中添加新的選單項596
21.5.1VBE的命令欄對象596
21.5.2在VBE中添加選單598
21.5.3為當前過程添加行號和錯誤處理600
21.6處理其他VBE對象603
21.6.1處理引用603
21.6.2VBE視窗604
21.7小結605
第22章創建國際通用程式606
22.1Windows區域設定和Office2007用戶語言607
22.1.14個國家的本地化配置607
22.1.2辨別用戶區域設定和Windows語言607
22.2從國際化的角度來看VBA
22.1的轉換函式607
22.2.1隱式轉換607
22.2.2日期字元串609
22.2.3IsNumeric和isdate函式609
22.2.4Cstr函式609
22.2.5CDbl、CSng、CLng、
22.2.5CInt、CByte、CCur和
22.2.5CDEC函式609
22.2.6CDate和DateValue函式609
22.2.7CBool函式610
22.2.8Format函式610
22.2.9FormatCurrency、FormatDateTime、FormatNumber和
22.2.5formatpercent函式610
22.2.10Str函式610
22.2.11sNumToUS函式610
22.2.12Val函式611
22.2.13Application.Evaluate612
22.3與Excel互動612
22.3.1為Excel傳送數據612
22.3.2讀取Excel中的數據614
22.3.3與Excel協同工作的原則614
22.4與用戶交流615
22.4.1紙張大小615
22.4.2顯示數據615
22.4.3理解數據615
22.4.4XXXLocal屬性616
22.4.5與用戶合作的原則616
22.5Excel2007的國際化選項617
22.6不遵循普遍規則的屬性、
22.6方法及函式619
22.6.1OpenText方法619
22.6.2SaveAs方法620
22.6.3ShowDataForm子過程620
22.6.4貼上文本621
22.6.5數據透視表計算欄位和
22.2.5項目、條件格式和數據
22.2.5有效性驗證公式621
22.6.6Web查詢622
22.6.7=TEXT()工作表函式622
22.7Range對象的Value、Formula
22.7及FormulaArray屬性623
22.7.1Range.AutoFilter方法623
22.7.2Range.AdvanceFilter方法623
22.8Application的Evaluate、ConvertFormula和
22.8ExecuteExcel4Macro函式624
22.9Office2007的語言設定624
22.9.1文本來自何處624
22.9.2識別Office用戶界面語言設定625
22.10創建一個多語言應用程式628
22.10.1建議的途徑629
22.10.2存儲字符串資源629
22.11在多語言環境中工作630
22.11.1保留足夠的空間630
22.11.2使用Excel對象630
22.11.3避免使用SendKeys方法631
22.11.4使用功能區631
22.11.5開發多語言應用程式的原則631
22.12有用的自定義函式631
22.12.1bWinToNum函式631
22.12.2bWinToDate函式632
22.12.3sFormatDate函式633
22.12.4ReplaceHolders函式633
22.13小結634
第4部分綜合系統篇
第23章VBA綜合實例636
23.1學生成績管理系統637
23.1.1系統說明637
23.1.2設定工作表結構638
23.1.3設計程式登錄窗體640
23.1.4設定用戶許可權管理窗體641
23.1.5編寫窗體及日誌記錄代碼642
23.1.6成績查詢648
23.1.7定製功能區按鈕653
23.1.8使用程式654
23.2工作表管理綜合外掛程式系統657
23.2.1系統說明657
23.2.2設定主框架658
23.2.3批量建立工作表659
23.2.4批量複製工作表661
23.2.5以輸入字元為條件重命名工作表662
23.2.6以選區字元為條件重命名工作表663
23.2.7排序工作表664
23.2.8建立工作表目錄666
23.2.9批量隱藏/顯示工作表667
23.2.10設計工具列與快捷鍵668
23.2.11使用外掛程式669
附錄A代碼視窗中的常用快捷鍵及其功能677
附錄B錯誤列表679
序言
Excel2007相對於以前版本的Excel,做出了巨大的跳躍。在檔案格式上,Excel工作簿由以往的二進制檔案格式(.xls、.xla和xlt等)變成開放的XML檔案格式(.xlsm、.xlam、.xltm、.xlsx、.xlax和.xltx等);在界面上,傳統的選單和工具列被換成了功能區,並且圖表外觀也煥然一新;在功能上,增加和改進了一系列功能,例如豐富的條件格式、可調整的編輯欄、函式記憶式鍵入、新的OLAP公式和多維數據集函式、改進的排序和篩選功能,以及Excel表格的增強功能等。這些調整和變化勢必造成Excel對象模型的改變,為用戶的學習和使用帶來困難,而且目前圖書市場上比較缺乏全面、系統且深入介紹Excel2007VBA編程技術的書籍。本書正是為了彌補這種不足編寫的,書中針對Excel2007新的對象模型,全面深入地剖析Excel2007VBA中的各個Excel對象及其使用方法。
本書是一本ExcelVBA綜合開發參考大全,書中幾乎囊括了使用ExcelVBA開發Excel應用程式的全部知識,同時在講解中結合了大量實用並具有代表性的示例。
本書共23章,分為4個部分。各個部分涉及的技術既相互獨立,又相互聯繫。書中逐步引導讀者深入學習並掌握ExcelVBA的編程知識、方法和技巧,是ExcelVBA愛好者和開發人員必備的案頭參考書。
文摘
在日常Excel使用中,如果需要重複執行同樣順序的命令,那么就可以使用ExcelVBA來使這些過程自動化以節省時間和精力;如果需要創建一個基於Excel的應用程式,但用戶本身不熟悉Excel的功能,那么就可以針對特定的任務通過宏來創建一些具有引導功能的按鈕和對話框來幫助這些用戶完成相應的操作。在辦公室自動化中,ExcelVBA是一十Excel可以依靠的非常重要的工具。而其中的宏錄柳器又是一個Excel可以依靠的非常重要的工具,用其可以通過滑鼠和鍵盤執行的操作轉換為ExcelVBA代碼,可以手動執行操作中的大部分都可以使用宏錄製器來記錄。這是一種快捷而簡單的方式,不會編寫VBA代碼的用戶也可以很快掌握。許多Excel用戶記錄並運行宏,甚至會產生沒有必要學習VBA的感覺。事實上很多操作確實不需要專門學習,而熟練使用Excel宏錄製器能夠解決常見問題,也是學習VBA的一個捷徑。
在本章中將說明如何使用宏錄製器,以及運行宏的所有方式。讀者將學習如何使用VisualBasic編輯器來檢查和修改宏,從而不再受到宏錄製器的限制。而且能夠超出宏錄製器有限的能力訪問,並學會使用VBA語言和Excel對象模型的強大功能。