目录译者序如何使用本书第一部分VBA编程基础第1章 入门 3
1.1 宏和程序设计语言 3
1.1.1什么是宏 3
1.1.2 Visual Basicfor Applications的简要历史 4
1.2为什么学习Visual BasicforApplications 5
1.3记录新的宏 6
1.3.1设置宏初始条件 7
1.3.2启动宏记录器并命名宏 7
1.3.3记录一个Word97的宏 8
1.3.4记录Excel 97的宏 13
1.4宏的源代码 17
1.5运行宏 18
1.6小结 20
1.7 工作室 21
1.7.1小测验 21
1.7.2练习 22
第2章 编写和编辑简单的宏 23
2.1理解Visual BasicforApplications环境 23
2.1.1理解模块 23
2.1.2探讨Visual Basic Editor 24
2.2编辑宏 37
2.2.1显示模块 37
2.2.2查找记录宏 37
2.2.3记录宏的各个部分 41
2.2.4编辑宏文本 43
2.2.5把宏从一个模块移动或拷贝到另一模块 46
2.2.6将模块作为文本文件保存和输入 47
2.2.7从项目中删除模块 49
2.3编写新的宏和过程 49
2.3.1插入和重命名模块 49
2.3.2选择存在的模块 50
2.3.3编写过程的文本 51
2.4编辑时运行一个过程 53
2.5为过程用户显示信息 54
2.6理解编写、编辑或运行过程时的错误信息 55
2.6.1语法错误 55
2.6.2运行时错误 57
2.7打印源代码 58
2.8小结 59
2.9 工作室 60
2.9.1小测验 60
2.9.2练习 60
第3章 理解数据类型、变量和常量 62
3.1检查Visual Basic数据类型 62
3.1.1 日期型 63
3.1.2数字 64
3.1.5变体型数据 66
3.1.4逻辑数值 66
3.1.3文本字符串 66
3.2理解变量 67
3.2.1什么是变量 67
3.2.2选择变量名 68
3.2.3建立变量 69
3.2.4作用域:判断哪些变量是可用的 72
3.2.5生命期:决定变量值可保留多久 76
3.2.6需要显式变量声明 76
3.2.7指定变量的数据类型 78
3.3理解常量 81
3.3.1建立命名常量 82
3.3.2常量范围 82
3.3.3书写文字常量 83
3.3.4定义常量数据类型 84
3.3.6使用Object Browser来查找可用的内部常量 85
3.3.5理解内部常量 85
3.4从过程用户获取数据 87
3.5总结 89
3.6 工作室 90
3.6.1小测验 90
3.6.2练习 90
第4章 操作符和表达式 92
4.1理解操作符和表达式 92
4.2数据类型兼容 93
4.3 Visual Basic的自动数据转换 94
4.3.1数字类型转换 95
4.3.2字符串和数字转换 96
4.3.3 Boolean型转换 96
4.3.4日期转换 96
4.4赋值操作符(=) 97
4.5.1加法(+) 99
4.5数字操作符 99
4.5.2减法(-) 100
4.5.3乘法(*) 100
4.5.4除法(/) 101
4.5.5整除(\) 101
4.5.6求模除法(Mod) 102
4.5.7求幂(^) 102
4.6比较操作符 102
4.6.1字符串比较 104
4.6.2 Like操作符 106
4.6.3 Is操作符 108
4.7逻辑操作符 108
4.7.1理解真值表 108
4.7.2 And 109
4.7.3 Or 109
4.7.5 Xor 110
4.7.4 Not 110
4.7.6 Eqv 111
4.7.7 Imp 111
4.8字符串连接操作符 112
4.8.1使用字符串连接 112
4.8.2字符串连接操作符 113
4.9理解操作符的优先级和复杂表达式的求值 114
4.10小结 116
4.11工作室 117
4.11.1小测验 117
4.11.2练习 117
第5章 使用Visual Baisc和主应用程序函数 119
5.1理解函数 119
5.1.1在赋值和表达式中使用函数 119
5.1.3忽略函数返回值 122
5.1.2理解函数参数和函数返回值 122
5.1.4使用函数的命名参数 124
5.2使用VBA的函数 125
5.2.1数学函数 126
5.2.2数据转换函数 127
5.2.3日期和时间函数 128
5.2.4用户交互式函数 129
5.2.5字符串函数 131
5.2.6磁盘、目录信息以及其他函数 132
5.3使用主应用程序函数 132
5.4使用Object Browser来插入函数调用 134
5.4.1观察和插入Visual Basic的函数 135
5.4.2观察和插入主应用程序函数 136
5.5使用函数来操作字符串 137
5.5.1删除多余的空格符 137
5.5.3比较和查找字符串 139
5.5.2判定字符串的长度 139
5.5.4字符串分割 142
5.5.5使用无法从键盘上输入的字符串字符 143
5.5.6格式化数据值 145
5.6小结 149
5.7工作室 150
5.7.1小测验 150
5.7.2练习 150
第6章 创建与使用函数过程和用户自定义函数 151
6.1理解函数过程和用户自定义函数 151
6.2创建函数过程 152
6.2.1编写函数过程 152
6.2.2创建Excel的用户自定义函数 154
6.2.3声明函数返回值的数据类型 155
6.2.4为函数的参数声明数据类型 157
6.2.5创建可选参数 157
6.2.6理解并控制VBA是如何传递参数的 160
6.3 在VBA中使用函数过程 164
6.3.1 使用Obiect Browser查找函数过程 164
6.3.2用Object Browser输入函数过程描述 166
6.4在Excel工作表中使用用户自定义函数 167
6.5设计函数过程和用户自定义函数 168
6.6理解递归 171
6.6.1 分析递归函数的操作 171
6.6.2避免偶然递归和其他递归问题 173
6.7小结 173
6.8 工作室 175
6 8.1小测试 175
6 8.2练习 175
第7章 理解对象和集合 176
7.1理解对象 176
7.1.2对象的方法 177
7.1.1对象的属性 177
7.1.3对象类 178
7.2使用对象 180
7.2.1使用对象属性 181
7.2.2使用对象方法 184
7.2.3声明对象变量 187
7.2.4在表达式和赋值中使用对象 188
7.2.5通过使用With…End With引用对象 190
7.3使用对象集合和对象容器 192
7.3.1在集合中增加新元素 195
7.3.2引用在集合或容器中的指定对象 196
7 4使用Object Browser来查看对象、方法和属性 197
7.5小结 198
7.6 工作室 200
7.6.1小测试 200
7.6.2练习 201
第一部分回顾 204
第二部分VBA的关键特性第8章Visual Basic for Applications判断结构 214
8.1理解Visual Basic for Applications的判断命令 214
8.2简单选择 215
8.2.1使用If…Then语句选择单个分支 215
8.2.2使用If…Then…Else在分支中进行选择 217
8.3复杂选择 220
8.3.1嵌套If…Then语句 220
8.3.2使用If…Then…Elself 222
8.3.3使用Select…Case语句 223
8.4非条件分支 227
8.5提早结束过程、函数和整个程序 231
8.5.1使用Exit语句 231
8.5.2使用End语句 233
8.6使用MsgBox让用户作出选择 235
8.7小结 239
8.8工作室 241
8.8.1 小测试 241
8.8.2练习 242
第9章 Visual Basic中的重复操作:循环 244
9.1理解循环命令 244
9.2固定的重复:For循环 246
9.2.1使用For…Next循环 246
9.2.2使用ForEach…Next循环 253
9.3可变循环:Do循环 257
9.3.1理解VBA如何检测循环条件 258
9.3.2使用在执行前测试循环条件的循环 260
9.3.3使用在循环执行后检测条件的循环 265
9.4提前结束循环 269
9.5循环的嵌套 271
9.5.1嵌套的For循环 272
9.5.2 Do循环嵌套 273
9.6小结 276
9.7工作室 277
9.7.1小测验 277
9.7.2练习 277
第10章进一步讨论:数据类型与变量 279
10.1 获得关于变量与表达式的信息 279
10.1.1使用VBA的数据信息函数 280
10.1.2确定变量或表达式的数据类型 284
10.1.3理解专用的Empty和Null值 290
10.2可靠性编程:防患于未然 292
10.2.1检查参数和其他交互值 292
10.2.2有效的用户输入 293
10.2.3使其他输入合法 297
10.3在两次函数和过程调用之间保存数据 297
10.4创建自己的数据类型 303
10.4.1定义用户自定义数据类型 304
10.4.2定义具有用户自定义类型的变量 305
10.4.3使用用户自定义类型变量 305
10.5创建自己的程序对象 313
10.5.1理解类模块 313
10.5.2设计一个对象类 314
10.5.3创建一个用户自定义类 316
10.5.4使用用户自定义类 323
10.6小结 325
10.7工作室 326
10.7.1 小测验 326
10.7.2练习 326
第11章 创建库和整个程序:模块化编程技术 328
11.1更有效地使用模块 328
11.1.1 创建过程和函数库 330
11.1.2使库过程和函数可用 331
11.2交叉模块编程的高级作用域规则 338
11.2.1理解公共(Public)和私有(private)作用域 338
11.2.2超越VBA的作用域规则 339
11.2.3理解并避免循环引用 343
11.2.4理解和使用模块限定符(Qualifier) 344
11.3理解结构化编程技术 345
11.3.1理解调用其他过程的过程 346
11.3.2 自顶向下程序设计和逐步求精 347
11.3.3用模块来组织编程项目 349
11.4使用过程参数在过程之间传递数据 350
11.4.1理解何时以及为什么要在过程中使用参数列表 350
11.4.2指定过程的参数列表 350
11.4.3使用具有参数的过程 351
11.5 小结 358
11.6.1 小测验 359
11.6 工作室 359
11.6.2练习 360
第12章 用Visual Basicfor Applications管理文件 362
12.1理解文件管理 362
12.1.1什么是文件管理 362
12.1.2回顾Visual Basic for Applications文件管理功能 362
12.2使用文件属性 363
12.2.1 理解文件属性 364
12.2.2获得文件属性 365
12.2.3改变文件的属性 368
12.3获得或查找文件名 370
12.3.1用Dir函数查找文件 370
12.3.2用Excel的内置对话框来获取文件名 374
12.3.3用Word的内置对话框来获取文件名 380
12.4对磁盘驱动器和文件夹进行操作 385
12.4.1 获得当前文件夹路径和驱动器名 385
12.4.2改变当前文件夹 386
12.4.3改变当前磁盘驱动器 387
12.4.4创建磁盘文件夹 388
12.4.5删除磁盘文件夹 389
12.5复制和删除文件 390
12.5.1复制文件 390
12.5.2删除文件 391
12 6重命名或移动文件 393
12 7获取文件信息 394
12.7.1获取文件的最新更改的日期和时间 395
12.7.2获取文件长度 395
12.8小结 397
12.9工作室 397
12.9.1小测验 397
12.9.2练习 398
13.1.1 一维数组 399
第13章 数组 399
131理解数组 399
13.1.2多维数组 400
l3.1.3静态和动态数组 402
13.2起始下标选择语句 402
13.3数组声明 403
13.4使用数组 405
13.5对动态数组的重定义 411
13.6 LBound和UBound函数 420
13.7用Erase来清除数组 421
13.8用数组作为函数和过程的参数 423
13.9排序数组 424
13.10检索数组 433
13.10.1顺序查找法 433
13.10.2折半查找法 437
13.11小结 442
13.12工作室 443
13.12.1小测验 443
13.12.2练习 444
第14章 调试与测试 446
14.1 程序错误的基本类型 446
14.2使用中断模式 447
14.2.1从错误对话框进入中断方式 448
14.2.2通过设置断点进入中断模式 449
14.2.3通过使用Stop语句进入中断模式 450
14.2.4用Stop Into命令进入中断模式 451
14.2.5通过中断代码执行进入中断模式 451
14.2.6结束中断模式 451
14.3使用Step Into命令 452
14.4使用Step Over命令 456
14.6理解和使用监视变量 457
14.5使用StepOut和Run To Cursor命令 457
14.6.1添加监视表达式 459
14.6.2编辑监视表达式 460
14.6.3删除监视表达式 461
14.6.4使用即日监视 461
14.6.5使用数据提示 461
14.6.6使用Locals Window 462
14.7跟踪过程调用 463
14.8使用Immediate Window 464
14.8.1使用Debug.Print语句 464
14.9小结 467
14.10 工作室 468
14.10.1小测验 468
14.10.2练习 469
第二部分回顾 471
15.1理解用户窗体 492
第三部分VBA的高级特性第15章 创建定制对话框 492
15.2理解控件 495
15.3创建自定义对话框 498
15.3.1添加新的UserForm对象 498
15.3.2使用Toolbox工具 499
15.3.3向窗体中添加控件 502
15.3 4编辑窗体控件 504
15.3.5控制Tab键次序 505
15.3.6在设计模式下设置窗体和控件的属性 506
15.4用VBA显示用户窗体 508
15.5使用VBA的窗体控件 509
15.5.1编写事件过程和其他窗体代码 509
15.5.2将它集成起来:独立的对话框 511
15.5.3将它们集成起来:在标准模块中使用代码的对话框 519
15.5.4使用列表控件 526
15.6小结 530
15.7.1小测验 531
15.7.2练习 531
15.7 工作室 531
第16章 菜单和工具条 533
16.1 了解命令条 533
16.1.1命令条的类型 534
16.1.2命令条的各组成部分 535
16.1.3命令条控件的类型 536
16.2命令条对象方法和属性 537
16.2.1 CommanBar集合对象 537
16.2.2 CommandBar对象 539
16.3 了解内置和自定义命令条 541
16.3.1自定义命令条 541
16.3.2内部命令条 543
16.3.3列出可用的内置命令条 543
16.4.2CkmmandBarControl对象 547
16.4命令条控件对象、方法和属性 547
16.4.1 CommandBarControls集合 547
16.4.3内部命令条控件 550
16.4.4命令条控件面板 554
16.5管理自定义命令条和内部命令条 558
16.5.1增加一个新命令条 558
16.5.2显示、隐藏和定位命令条 559
16.5.3删除命令条 562
16.5.4重新设置内部命令条 563
16.6管理命令条控件 563
16.6.1把控件加到命令条控件 564
16.6.2命名或重命名命令条控件 565
16.6.3指定控件的事件过程 565
16.6.4删除命令条控件 566
16.6.5可用或禁用命令条控件 566
16.6.7查找指定的控件 567
16.6.6控制命令条控件的状态 567
16.7集中起来:菜单类型命令条 568
16.8集中起来:工具条类型命令条 574
16.9小结 583
16.10工作室 583
16.10.1小测验 583
16.10.2练习 584
第17章 错误处理 585
17.1错误处理策略 585
17.2 On ErrorGoTo语句 586
17.3 Resume语句 587
17.4查寻运行时刻错误的类型、信息和位置 589
17.4.1判断运行时刻错误类型:用Err函数 590
17.4.2获得运行时刻错误消息文本:使用Error函数 594
17.4.3判断运行时刻错误的位置:使用Erl函数 594
17.5强制运行时刻错误和创建用户定义错误代码:Error语句 595
17.6使用Err对象 597
17.7集中起来:错误处理的例子 598
17.7.1处理致命的错误 598
17.7.2不终止程序的执行解决运行时刻错误 602
17.7.3重新执行出错语句 604
17.7.4在一指定点继续执行 605
17.7.5强制一个运行时刻错误 607
17.8小结 613
17.9工作室 614
17.9.1小测验 615
17.9.2练习 615
第18章 控制VBA的主应用程序 617
18.1使用Excel 97 617
18.1.1使用工作簿对象 617
18.1.2使用工作表对象 625
18.1.3返回区域对象的方法 630
18.1.4使用单元和区域 635
18.2使用Word 97 641
18.2.1使用文档对象 641
18.2.2使用模板对象 649
18.2.3了解文档对象的组件 651
18.2.4指定一个区域 653
18.2.5使用Selection对象 658
18.2.6定位或折叠Selection对象和Range对象 658
18.2.7插入文本 661
18.2.8剪切、拷贝、粘贴和删除文本 665
18.3小结 667
18.4 工作室 669
18.4.1小测验 670
18.4.2练习 671
第19章 使用其他应用程序:OLE和Automation 672
19.1 什么是OLE 672
19.1.1 OLE的发展简史 672
19.1.2 VBA如何匹配 674
19.2查询一个对象类的类型 674
19.2.1使用Windows 95 Registry 675
19.2.2使用系统信息小应用程序 678
19.3添加链接和嵌入对象 679
19.3.1了解Shape对象和OLEFormat对象 679
19.3.2使用Shapes集合的AddOLEObject方法 680
19.3.3插入一个新的嵌入对象 682
19.3.4将一个已存在的文件作为一个嵌入对象插入 685
19.3.5将一个现存文件作为链接对象插入 687
19.3.6 Excel 97的OLEObject集合 688
19.3.7 Word 97的InLineShapes集合 689
19.4.1访问OLE对象 691
19.4使用链接和嵌入对象 691
19.4.2使用OLE对象的属性 692
19.4.3使用OLE对象的方法 696
19.5使用Automation 702
19.5.1 访问Automation对象 703
19.5.2直接访问对象 703
19.5.3创建一个新的Automation对象 708
19.5.4访问一个现存的Automation对象 712
19.6小结 714
19.7 工作室 715
19.7.1小测验 715
19.7.2练习 716
第20章 使用其他应用程序:DDE、DLL和发送击键信息 717
20.1 开始其他应用程序 717
20.2激活一个运行着的应用程序 719
20.3使用动态数据交换 721
20.3.1 DDE:基础知识 722
20.3.2初始化和终止同DDE服务器的链接 722
20.3.3控制服务器应用程序 725
20.3.4同DDE服务器应用程序交换数据 727
20.4向其他应用程序发送击键信息 731
20.5通过VBA访问DLL 734
20.5.1声明DLL过程 734
20.5.2 一些DLL例子 735
20.6小结 739
20.7 工作室 740
20.7.1小测验 740
20.7.2练习 740
第21章 使用事件过程和附加应用程序 742
21.1 什么是事件和什么是事件过程 742
21.1.1了解事件过程存放在哪儿 743
21.1.2事件过程名与声明 744
21.2使用Application对象事件 745
21.1.3事件过程参数 745
21.3使用Excel对象事件 747
21.3.1 Open事件 748
21.3.2 BeforeClose事件 750
21.3.3 Activate事件 751
21.3 4 Deactivate事件 753
21.3.5 BeforeDoubleClick事件 754
21.3.6 Change事件 755
21.3.7 Calculate事件 758
21.3.8其他的事件 758
21.4使用Excel的相关事件的属性和方法 759
21.4.1 Excel的OnWindow属性 759
21.4.2 Excel的OnKey方法 761
21.4.3 Excel的OnTime方法 763
21.5.1 Open事件 765
21.5使用Word对象事件 765
21.5.2 Close事件 767
21.5.3 New事件 768
21.5.4 DocumentChange事件 769
21.5.5 Quit事件 771
21.6使用Word的相关事件的集合和方法 773
21.7使用附加应用程序 778
21.7.1创建一个附加应用程序 778
21.7.2用VB控制附加应用程序 780
21.8小结 782
21.9 工作室 783
21.9.1 小测验 783
21.9.2练习 784
第三部分回顾 785
第四部分附录附录A答案 801