本書提供了最快、最簡便的方法學習使用VBA,以便自定義和增強Office軟件以及許多可使用VBA的軟件的功能。本書不僅提供了VBA宿主軟件的一般技巧,而且涉及了在Word、Excel、PowerPoint、Access以及Outlook中的應用。本書針對Office 2003軟件,也適用于Office XP以及Office 2000。
什么是VBA用VBA可以做什么,在Office軟件中使用錄制宏,編輯宏的功能,使用Visual Basic編輯器生成和編輯代碼,找出程序中需要的對象、屬性和方法,,使用變量、常量和數(shù)組存儲和操作數(shù)據(jù),創(chuàng)建確定和不確定的循環(huán),,用條件選擇不同的決策,用信息框、輸入框以及內(nèi)置對話框進行交互,生成自定義對話框并對控件編程,創(chuàng)建清晰、易維護的模塊,測試、調(diào)試以及完善程序,用數(shù)字證書和安全特性保證代碼安全。
目 錄
一、VBA 語言基礎 ............................. 1
第一節(jié) 標識符 .. .. .. 1
第二節(jié) 運算符 .. .. .. 1
第三節(jié) 數(shù)據(jù)類型 .. 1
第四節(jié) 變量與常量 .. ........................... 1
第五節(jié) 數(shù)組 .. .. ..... 2
第六節(jié) 注釋和賦值語句 .. .................... 2
第七節(jié) 書寫規(guī)范 .. 2
第八節(jié) 判斷語句 .. 2
第九節(jié) 循環(huán)語句 .. 3
第十節(jié) 其他類語句和錯誤語句處理 .. .. 4
第十一節(jié) 過程和函數(shù) .. ....................... 4
一.Sub 過程.. .. . 4
二.Function 函數(shù) .. ......................... 5
三.Property 屬性過程和 Event 事件過程 .. ....................... 5
第十二節(jié)內(nèi)部函數(shù) .. ............................ 5
一.測試函數(shù) .. .. 5
二.數(shù)學函數(shù) .. .. 5
三.字符串函數(shù) .. ............................ 6
四.轉換函數(shù) .. .. 6
五.時間函數(shù) .. .. 6
第十三節(jié) 文件操作 .. ........................... 6
文件 .. .. .............. 6
刪除 .. .. .............. 7
打開 .. .. .............. 7
讀入 .. .. .............. 7
寫入 .. .. .............. 7
關閉 .. .. .............. 7
其他文件函數(shù) .. .. 7
二、VISUAL BASIC 程序設計網(wǎng)絡教學.......................... 1
第一課 VBA 是什么 ........................... 1
1.1 VBA 是什么.. .. . 1
1.2 EXCEL 環(huán)境中基于應用程序自動化的優(yōu)點.. ................... 1
1.3 錄制簡單的宏.. 2
1.4 執(zhí)行宏 .. .. ........ 2
1.5 查看錄制的代碼 .. .......................... 2
1.6 編輯錄制的代碼 .. .......................... 3
1.7 錄制宏的局限性 .. .......................... 4
1.8 小結.. .. ............ 4
第二課 處理錄制的宏........................... 4
2.1 為宏指定快捷鍵 .. .......................... 4
2.2 決定宏保存的位置.. .. ....................... 5
2.3 個人宏工作簿.. 5
2.3.1 保存宏到個人宏工作簿 .. ......... 5
2.3.2 使用并編輯個人宏工作簿中的宏 .. ........................... 5
2.4 將宏指定給按鈕 .. .......................... 6
2.5 將宏指定給圖片或其他對象.. .. ......... 6
2.6 小結.. .. ............ 7
第三課 學習控件..... 7
3.1 EXCEL 開發(fā)過程簡介 .. .................. 7
3.2 認識不同的控件 .. .......................... 7
3.3 向工作表添加控件.. .. ....................... 7
3.4 設置控件的特性 .. .......................... 8
3.5 給控件命名 .. .. . 8
3.6 使用用戶窗體.. 8
3.7 疑難解答.. .. ..... 9
第四課 理解變量和變量的作用........... 9
4.1 代碼存在的位置:模塊.. .. ................ 9
4.2 對模塊的概覽.. .. ............................ 10
4.2.1 創(chuàng)建過程 .. ............................ 10
4.2.2 運行宏.. .. 11
4.3 保存對模塊所做的改變.. .. .............. 11
4.4 變量.. .. .......... 11
4.4.1 變量的數(shù)據(jù)類型.. .. .................. 11
4.4.2 用 Dim 語句創(chuàng)建變量(聲明變量) .. ......................... 13
4.4.3 變量命名的慣例.. .. .................. 13
4.4.4 使用數(shù)組 .. ............................ 14
4.4.5 變量賦值 .. ............................ 15
第五課 利用 VBA 設置工作表使用權限 ...................... 15
1.使用 WITH 語句。 .. ...................... 17
2.使用對象變量。.. .. ......................... 17
方法 3:減少對象的激活和選擇 .. ...... 17
方法 4:關閉屏幕更新 .. .................... 18
第六課 提高 EXCEL 中 VBA 的效率 .......................... 19
方法 1:盡量使用 VBA 原有的屬性、方法和 WORKSHEET 函數(shù) ........................ 19
方法 2:盡量減少使用對象引用,尤其在循環(huán)中.. .............. 19
1.使用 With 語句。 .. .................... 19
2.使用對象變量。 .. ..................... 20
3.在循環(huán)中要盡量減少對象的訪問。 .. ......................... 20
方法 3:減少對象的激活和選擇 .. ...... 20
方法 4:關閉屏幕更新 .. .................... 20
第七課 如何在 EXCEL 里使用定時器 ......................... 20
三、學習微軟 EXCEL 2002 VBA 編程和 XML,ASP 技術 .................. 22
第一章 電子表格自動化簡介和了解宏命令................... 22
1 了解宏 .. .. ......... 22
2 宏命令的普通應用.. .. ........................ 22
3 寫宏之前的計劃 .. ........................... 23
4 錄制宏 .. .. ......... 24
5 運行宏 .. .. ......... 26
6 修改宏代碼 .. .. .. 26
7 添加注釋.. .. ...... 29
8 分析宏代碼 .. .. .. 29
9 清除宏代碼 .. .. .. 30
10 測試修改好的宏 .. ......................... 31
11 兩個層面運行宏的方法 .. ............... 32
12 完善你的宏代碼 .. ......................... 32
13 重新命名宏 .. .. 34
14 運行宏的其它方法 .. ...................... 34
15 使用鍵盤快捷鍵運行宏 .. ............... 34
16 通過菜單運行宏 .. ......................... 35
17 通過工具欄按鈕運行宏 .. ............... 37
18 通過工作表里面的按鈕運行宏 .. .... 38
19 保存宏 .. .. ....... 39
20 打印宏 .. .. ....... 39
21 保存宏在個人宏工作簿 .. ............... 40
22 打開含有宏的工作簿 .. .................. 41
23VB 編輯窗口 .. . 42
24 了解工程瀏覽窗口 .. ...................... 42
25 了解屬性窗口 .. ............................. 43
26 了解代碼窗口 .. ............................. 44
27 VB 編輯器里的其它窗口 .. ............. 45
28 接下來…… .. .. 46
第二章 VBA 第一步........................... 46
1 了解指令,模塊和過程.. .. ................. 46
2 VBA 工程命名.. 46
3 模塊重命名 .. .. .. 47
4 從其它工程調(diào)用過程 .. .................... 48
5 了解對象,屬性和方法.. .. ................. 49
6 學習對象,屬性和方法.. .. ................. 50
7 句法和文法 .. .. .. 52
8 打斷很長的 VBA 語句 .. .................. 54
9 了解 VBA 錯誤.. .. ............................. 54
10 查找?guī)椭? .. .. .... 56
11 語法和編程快捷助手.. .. ................... 57
12 屬性/方法列表 .. ............................ 58
13 常數(shù)列表 .. .. .... 58
14 參數(shù)信息 .. .. .... 59
15 快速信息 .. .. .... 59
16 自動完成關鍵字 .. ......................... 59
17 縮進/凸出 .. .. ... 60
18 設置注釋塊/解除注釋塊 .. .............. 60
19 使用對象瀏覽器 .. ......................... 60
20 使用 VBA 對象庫 .. ....................... 65
21 用對象瀏覽器來定位過程 .. ........... 66
22 使用立即窗口 .. ............................. 66
23 獲取立即窗口里的信息 .. ............... 68
24 學習對象 .. .. .... 69
25 電子表格單元格操作 .. .................. 69
26 使用 RANGE 屬性 .. ........................ 69
27 使用 CELLS 屬性 .. ......................... 69
28 使用 OFFSET 屬性.. .. ........................ 70
29 選擇單元格的其它方法 .. ............... 71
30 選擇行和列 .. .. 71
31 獲取工作表信息 .. ......................... 72
32 往工作表輸入數(shù)據(jù) .. ...................... 72
33 返回工作表中的信息 .. .................. 72
34 單元格格式 .. .. 72
35 移動,復制和刪除單元格 .. ........... 73
36 操作工作簿和工作表 .. .................. 74
37 操作窗口(WINDOWS ) .. .............. 74
38 管理 EXCEL 應用程序 .. .................. 75
39 接下來„„ .. .. 75
第三章 了解變量,數(shù)據(jù)類型和常量. 76
1 保存 VBA 語句的結果 .. .................. 76
2 變量是什么 .. .. .. 76
3 數(shù)據(jù)類型.. .. ...... 76
4 如何產(chǎn)生變量.. . 77
5 如何聲明變量.. . 78
6 明確變量的數(shù)據(jù)類型 .. .................... 79
7 變量賦值.. .. ...... 80
8 強制聲明變量.. . 82
9 了解變量范圍.. . 83
10 過程級別(當?shù)兀┳兞? .. ............... 83
11 模塊級別變量 .. ............................. 84
12 工程級別變量 .. ............................. 85
13 變量的存活期 .. ............................. 85
14 了解和使用靜態(tài)變量 .. .................. 85
15 聲明和使用對象變量 .. .................. 86
16 使用明確的對象變量 .. .................. 87
17 查找變量定義 .. ............................. 87
18 在 VB 過程里面使用常量 .. ............ 87
19 內(nèi)置常量 .. .. .... 88
20 接下來„„ .. .. 89
第四章 VBA 過程:子程序和函數(shù) . 89
1.關于函數(shù)過程.. . 89
2.創(chuàng)建函數(shù)過程.. . 89
3.執(zhí)行函數(shù)過程.. . 91
4.從工作表里運行函數(shù)過程 .. ............. 91
5.從另外一個 VBA 過程里運行函數(shù)過程.. .......................... 93
6.傳遞參數(shù).. .. ...... 93
7.明確參數(shù)類型.. . 94
8.按地址和按值傳遞參數(shù).. .. ................. 95
9.使用可選的參數(shù) .. ........................... 96
10.定位內(nèi)置函數(shù) .. ............................. 97
11.使用 MSGBOX 函數(shù) .. ..................... 98
12.MSGBOX 函數(shù)的運行值 .. ............. 101
13.使用 INPUT B OX 函數(shù) .. ................. 102
14.數(shù)據(jù)類型轉變 .. ........................... 103
15.使用 INPUT B OX 方法 .. ................. 104
16.使用主過程和子過程 .. ................ 107
17.接下來„„ .. 109
第五章 基于 VBA 做決定 .............. 109
1.關系和邏輯運算符.. .. ...................... 109
2.IF…THEN 語句 .. ............................ 110
3.基于多于一個條件的決定 .. ........... 112
4.THE IF…THEN…ELSE 語句.. .. ........... 113
5.IF…THEN…ELSEIF 語句 .. .............. 116
6.嵌套的 IF…THEN 語句 .. ................ 117
7.SELECT CASE 語句 .. ....................... 118
8.和 CASE 子句一起使用 IS .. ............ 119
9.確定 CASE 子句里數(shù)值的范圍 .. ..... 120
10.在 CASE 子句里確定多個表達式 .. 121
11.接下來… .. .. .. 121
第六章 在 VBA 中重復操作 .......... 121
1.DO LOOPS: DO…WHILE 和 DO…UNTIL .. ......................... 121
2.觀察過程執(zhí)行.. .. ............................. 124
3.WHILE…WEND 循環(huán).. .. .................... 125
4.FOR…NEXT 循環(huán) .. ........................ 126
5.FOR EACH…NEXT 循環(huán) .. ................ 127
7.提前跳出循環(huán).. .. ............................. 128
8.循環(huán)嵌套.. .. .... 129
9.接下來….. .. .... 129
第七章 利用 VBA 數(shù)組管理數(shù)據(jù)清單和表格 ............ 129
1.了解數(shù)組.. .. .... 130
2.聲明數(shù)組.. .. .... 131
3.數(shù)組的上界和下界.. .. ...................... 131
4.在 VBA 過程里使用數(shù)組.. .. ............. 131
5.數(shù)組和循環(huán)語句 .. ......................... 132
6.使用二維數(shù)組.. .. ............................. 134
7.靜態(tài)和動態(tài)數(shù)組 .. ......................... 135
8.數(shù)組函數(shù).. .. .... 137
9.A RRAY 函數(shù) .. .. 137
10.ISARRAY 函數(shù) .. ........................... 137
11.ERASE 函數(shù) .. . 138
12.LBOUND 函數(shù)和 UB OUND 函數(shù) .. .. 139
13.數(shù)組中的錯誤 .. ........................... 139
14.數(shù)組作為參數(shù) .. ........................... 141
15.接下來… .. .. .. 141
第八章 利用 VBA 操縱文件和文件夾 ........................ 141
1.獲取當前文件夾的名稱(CURDIR 函數(shù)) .. .................... 142
2.更改文件或文件夾名稱(NAME 函數(shù)) .. ....................... 142
3.檢查文件或文件夾是否存在(DIR 函數(shù)).. .................... 143
4.獲得文件修改的日期和時間(FILEDATETIME 函數(shù)).. .... 144
5.獲得文件大。‵ILELEN 函數(shù)) .. .. 145
6.返回和設置文件屬性(GETA TTR 函數(shù)和 SETA TTR 函數(shù)) ............................. 145
7.更改缺省文件夾或驅(qū)動器(CHDIR 語句和 CHDRI VE 語句) ......................... 146
8.創(chuàng)建和刪除文件夾(MKDIR 語句和 RMDIR 語句) .. ...... 147
9.復制文件(FILECOPY 語句).. .. ....... 147
10.刪除文件(K ILL 語句) .. ............ 149
11.從文件讀取和寫入數(shù)據(jù)(INPUT /OUTPUT ) .. ................. 149
12.文件訪問類型 .. ........................... 149
13.使用順序文件 .. ........................... 150
14.讀取儲存于順序文件里的數(shù)據(jù) .. .. 150
15.逐行讀取文件 .. ........................... 150
16.從順序文件中讀取字符 .. ............. 151
17.讀取分隔文本文件 .. .................... 152
18.往順序文件里寫數(shù)據(jù) .. ................ 153
19.使用 WRITE # 和 PRINT # 語句 .. ... 154
20.操作隨機文件 .. ........................... 155
21.創(chuàng)建用戶定義的數(shù)據(jù)類型 .. ......... 155
22.操作二進制文件 .. ....................... 158
23.操作文件和文件夾的時髦方法 .. .. 159
24.使用 WSH 獲取文件信息 .. .......... 162
25.FILESYSTEMOBJEC 的方法和屬性 . 163
26.對象 FIL E 的屬性.. .. ....................... 166
27.文件夾對象屬性 .. ....................... 167
28.驅(qū)動器對象屬性 .. ....................... 167
29.使用 WSH 創(chuàng)建文本文件 .. .......... 168
30.使用 WSH 進行其它操作 .. .......... 170
31.運行其它應用程序 .. .................... 170
32.創(chuàng)建快捷方式 .. ........................... 171
33.接下來„„ .. 172
第九章 利用 VBA 控制其它應用程序 ........................ 172
1.啟動應用程序.. .. ............................. 172
2.在應用程序之間切換 .. .................. 175
3.控制其它應用程序.. .. ...................... 175
4.控制應用程序的其它方法 .. ........... 177
5.了解自動控制.. .. ............................. 177
6.了解鏈接和嵌入 .. ......................... 178
7.使用 VBA 進行鏈接和嵌入 .. ......... 179
8.COM 和自動控制 .. ....................... 180
9.了解綁定.. .. .... 180
10.后期綁定 .. .. .. 180
11.早期綁定 .. .. .. 180
12.建立到對象庫的引用 .. ................ 181
13.創(chuàng)建自動控制對象 .. .................... 182
14.使用 CREATEOBJECT 函數(shù) .. .......... 182
15.使用自動控制創(chuàng)建一個新的 WORD 文檔 .. .................... 183
16.使用 GET OBJECT 函數(shù).. .. ................ 183
17.打開存在的 WORD 文檔.. .. ............. 184
18.使用關鍵字 NEW.. .. ....................... 185
19.使用自動控制訪問 MICROSOFT OUTLOOK .. ................... 186
20.接下來„„ .. 187
第十章 對話框和自定義窗體........... 187
1.文件打開和另存為對話框 .. ........... 190
2.GET OPENFILENAME 和 GET SAVE AS FILENAME 方法 .. ........ 194
3.創(chuàng)建窗體.. .. .... 195
4.創(chuàng)建用戶窗體的工具 .. .................. 197
5.標簽.. .. ........... 198
6.文字框 .. .. ....... 198
7.框架.. .. ........... 198
8.選項按鈕.. .. .... 199
9.復選框 .. .. ....... 199
10.切換按鈕 .. .. .. 199
11.列表框.. .. ...... 199
12.復合框 .. .. ..... 199
13.滾動條 .. .. ..... 199
14.旋轉按鈕 .. .. .. 199
15.圖像 .. .. ......... 199
16.多頁控件 .. .. .. 200
17.TABSTRIP 控件 .. .......................... 200
18.REFEDIT 控件 .. ............................ 200
19.在窗體上放置控件 .. .................... 200
20.應用程序示例 1:信息調(diào)查 .. ....... 200
21.在窗體上添加按鈕、選項框和其它控件 .. .................... 202
22.更改控件名稱 .. ........................... 204
23.設置其它控件屬性 .. .................... 204
24.準備工作表以儲存窗體數(shù)據(jù) .. ...... 205
25.顯示自定義窗體 .. ....................... 206
26.設置 TAB 順序.. .. ........................... 206
27.了解窗體和控件事件 .. ................ 207
28.編寫 VBA 過程對窗體和控件事件反應 .. ...................... 209
29.編寫過程來初始化窗體 .. ............. 209
30.編寫過程填充列表框控件 .. ......... 211
31.編寫過程控制選項按鈕 .. ............. 211
32.編寫過程同步文字框和旋轉按鈕 . 212
33.編寫過程關閉用戶窗體 .. ............. 212
34.轉移窗體數(shù)據(jù)到工作表 .. ............. 213
35.使用 INFO SURVEY 應用程序 .. ...... 214
36.應用程序示例 2:學生和考試 .. ... 214
37.使用多頁和 TABSTRIP 控件 .. ........ 214
38.給窗體 STUDENTS AND EXAMS 自定義窗體編寫 VBA 過程.. ........................... 216
39.使用自定義窗體 STUDENTS AND EXAMS .. ...................... 221
40.接下來„„ .. 223
第十一章 自定義集合和類模塊....... 223
1.使用集合.. .. .... 224
2.聲明自定義集合 .. ......................... 225
3.給自定義集合添加對象.. .. ............... 225
4.從自定義集合移出對象.. .. ............... 226
5.創(chuàng)建自定義對象 .. ......................... 227
6.創(chuàng)建類 .. .. ....... 227
7.變量聲明.. .. .... 227
8.定義類的屬性.. .. ............................. 228
9.創(chuàng)建 PROPERTY GET 過程 .. ............. 228
10.創(chuàng)建 PROPERTY LET 過程.. .. ............ 229
11.創(chuàng)建類方法.. . 230
12.創(chuàng)建類的示例 .. ........................... 230
13.類模塊里的事件過程 .. ................ 230
14.創(chuàng)建用戶界面 .. ........................... 231
15.觀察 VBA 過程的執(zhí)行 .. .............. 240
16.接下來„„ .. 243
第十二章 使用 VBA 創(chuàng)建自定義菜單和工具欄 ........ 243
1.工具欄 .. .. ....... 243
2.創(chuàng)建自定義工具欄.. .. ...................... 245
3.刪除自定義工具欄.. .. ...................... 247
4.使用 COMMAND B AR 的屬性 .. ......... 247
5.使用 COMMAND B AR 控件 .. ............ 247
6.理解和使用控件屬性 .. .................. 249
7.控件方法.. .. .... 251
8.使用菜單.. .. .... 252
9.菜單編程.. .. .... 254
10.創(chuàng)建子菜單 .. 256
11.修改內(nèi)置快捷菜單 .. .................... 258
12.創(chuàng)建快捷菜單 .. ........................... 260
13.接下來„„ .. 262
第十三章 調(diào)試 VBA 過程和處理錯誤 ........................ 262
1.測試 VBA 過程.. .. ........................... 262
2.終止過程.. .. .... 263
3.使用斷點.. .. .... 264
4.在中斷模式下使用立即窗口.. .. ........ 267
5.使用 STOP 語句 .. ........................... 269
6.添加監(jiān)視表達式 .. ......................... 269
7.清除監(jiān)視表達式 .. ......................... 272
8.使用快速監(jiān)視.. .. ............................. 272
9.使用本地窗口和調(diào)用堆棧對話框.. .. . 273
10.逐句運行 VBA 過程 .. .................. 274
11.逐句運行過程 .. ........................... 275
12.逐過程執(zhí)行過程 .. ....................... 275
13.設置下一條語句 .. ....................... 276
14.顯示下一條語句 .. ....................... 277
15.終止和重新設置 VBA 過程 .. ....... 277
16.了解和使用條件編譯 .. ................ 277
17.操縱書簽 .. .. .. 279
18.捕捉錯誤 .. .. .. 279
17.接下來„„ .. 283
第十四章 微軟 EXCEL 2002 中的事件編程............... 283
1.事件過程介紹 .. ............................. 283
2.激活和失活事件 .. ......................... 285
3.事件次序.. .. .... 287
4.工作表事件 .. .. 287
5.工作簿事件 .. .. 292
6.圖表事件.. .. .... 310
7.內(nèi)嵌圖表事件.. .. ............................. 314
8.可為應用軟件對象識別的事件 .. .... 315
9.查詢表時間 .. .. 318
10.接下來„„ .. 321
第十五章 在 EXCEL 里使用 ACCESS........................ 321
1.對象庫 .. .. ....... 321
2.建立對對象庫的引用 .. .................. 327
3.鏈接到 ACCESS .. .. ........................... 327
4.使用 A UTOMATION 鏈接到 A CCESS 數(shù)據(jù)庫 .. .................... 329
5.使用 DAO 鏈接到 A CCESS 數(shù)據(jù)庫.. .. 332
6.使用 ADO 鏈接到 A CCESS 數(shù)據(jù)庫.. .. 332
7.從 EXCEL 執(zhí)行 A CCESS 任務 .. ........ 334
8.創(chuàng)建新 ACCESS 數(shù)據(jù)庫 .. ................ 334
9.打開 A CCESS 窗體 .. ....................... 336
10.打開 A CCESS 報表 .. ..................... 341
11.運行 A CCESS 查詢 .. ..................... 343
12.運行選擇查詢 .. ........................... 345
13.運行參數(shù)查詢 .. ........................... 346
14.調(diào)用 A CCESS 函數(shù) .. ..................... 348
15.獲取 A CCESS 數(shù)據(jù)到 EXCEL 工作表 .. ............................ 348
16.使用 GET ROWS 方法獲取數(shù)據(jù) .. .... 348
17.使用 COPYFROMRECORDSET 方法獲取數(shù)據(jù) .. ................. 352
18.使用 TRANSFERSPREADSHEET 方法獲取數(shù)據(jù).. ................ 352
19.使用 O PENDATABASE 方法 .. ......... 353
20.從 ACCESS 數(shù)據(jù)創(chuàng)建文本文件.. .. .... 357
21.從 ACCESS 數(shù)據(jù)創(chuàng)建查詢表 .. ....... 360
22.在 EXCEL 里使用 A CCESS 數(shù)據(jù) .. ... 362
23.用 ACCESS 數(shù)據(jù)創(chuàng)建內(nèi)嵌圖表.. .. .... 362
24.傳輸 EXCEL 電子表格到 A CCESS 數(shù)據(jù)庫 .. ..................... 364
25.將 EXCEL 電子表格鏈接到 A CCESS 數(shù)據(jù)庫.. .................. 366
26.將 EXCEL 電子表格導入 A CCESS 數(shù)據(jù)庫 .. ..................... 367
27.放置 EXCEL 數(shù)據(jù)到 A CCESS 表中.. .. 367
28.接下來„„ ....