第Ⅰ部分 Excel基础知识 3
第1章 Excel 2007的起源 3
1.1电子表格软件的简史 3
1.1.1最初的起源:VisiCalc 3
1.1.2 Lotus 1-2-3 4
1.1.3 Quattro Pro 6
1.1.4 Microsoft Excel 7
1.2 Excel对开发人员的重要性 12
1.3 Excel在Microsoft战略中的角色 13
第2章 Excel概述 15
2.1关于对象 15
2.2工作簿 16
2.2.1工作表 16
2.2.2图表工作表 17
2.2.3 XLM宏工作表 17
2.2.4 Excel 5/95对话框编辑表 19
2.3 Excel的用户界面 19
2.3.1功能区的引入 19
2.3.2快捷菜单 24
2.3.3对话框 25
2.3.4键盘快捷键 26
2.3.5智能标记 26
2.3.6任务窗格 27
2.4自定义屏幕显示 28
2.5数据录入 28
2.6公式、函数和名称 28
2.7选择对象 30
2.8格式 30
2.8.1数字格式 30
2.8.2样式格式 31
2.9保护选项 32
2.9.1保护公式以防被重写 32
2.9.2保护工作簿的结构 33
2.9.3运用密码来保护工作簿 33
2.9.4使用密码来保护VBA代码 34
2.10图表 35
2.11形状和SmartArt 35
2.12数据库访问 36
2.12.1工作表数据库 36
2.12.2外部数据库 37
2.13 Internet特性 37
2.14分析工具 38
2.14.1分级显示 38
2.14.2分析工具库 38
2.14.3数据透视表 38
2.14.4 Solver 39
2.14.5 XML特性 39
2.15加载项 39
2.16宏和编程 40
2.17文件格式 40
2.18 Excel的帮助系统 40
第3章 公式的使用技巧 43
3.1公式概述 43
3.2计算公式 44
3.3单元格和单元格区域引用 45
3.3.1为什么使用不是相对的引用 45
3.3.2 R1 C1表示法 46
3.3.3引用其他的工作表或工作簿 47
3.4使用名称 48
3.4.1命名单元格和单元格区域 48
3.4.2将名称应用于现有的引用 49
3.4.3交叉名称 50
3.4.4命名列和行 50
3.4.5名称的作用范围 50
3.4.6 命名常量 51
3.4.7命名公式 52
3.4.8命名对象 54
3.5公式错误 54
3.6数组公式 55
3.6.1一个数组公式的例子 55
3.6.2数组公式日历 56
3.6.3数组公式的优缺点 57
3.7计数和求和技巧 57
3.7.1计数公式的示例 58
3.7.2求和公式的示例 59
3.7.3其他计数工具 60
3.8使用日期和时间 60
3.8.1输入日期和时间 61
3.8.2使用1900年之前的日期 61
3.9创建大公式 62
第4章 理解Excel的文件 65
4.1启动Excel 65
4.2文件类型 68
4.2.1 Excel文件格式 68
4.2.2文本文件格式 69
4.2.3数据库文件格式 70
4.2.4其他文件格式 70
4.3模板文件的处理 71
4.3.1查看模板 71
4.3.2创建模板 72
4.3.3创建工作簿模板 73
4.4 Excel文件的内部情况 74
4.4.1仔细分析一个文件 74
4.4.2为什么文件格式很重要 77
4.5 QAT文件 78
4.6 XLB文件 78
4.7加载宏文件 79
4.8 Excel在注册表中的设置 79
4.8.1关于注册表 80
4.8.2 Excel的设置 80
第Ⅱ部分Excel应用程序开发 85
第5章 电子表格应用程序的内涵 85
5.1电子表格应用程序 85
5.2开发人员和终端用户 86
5.2.1谁是开发人员 87
5.2.2电子表格应用程序用户的分类 88
5.2.3电子表格应用程序的客户 88
5.3用Excel解决问题 89
5.4基本的电子表格应用程序类型 90
5.4.1快捷但质量不高的电子表格应用程序 90
5.4.2自己创作、自己使用的电子表格应用程序 90
5.4.3单用户电子表格应用程序 91
5.4.4意大利面条式电子表格应用程序 91
5.4.5实用电子表格应用程序 91
5.4.6包含工作表函数的加载宏电子表格 92
5.4.7单元块预算式电子表格应用程序 92
5.4.8假设分析模型式电子表格应用程序 93
5.4.9数据存储和访问电子表格应用程序 93
5.4.10数据库前端电子表格应用程序 93
5.4.11统包式电子表格应用程序 94
第6章 电子表格应用程序开发的基础 95
6.1确定用户需求 96
6.2规划满足用户需求的应用程序 96
6.3确定最合适的用户界面 99
6.3.1创建自定义的功能区 99
6.3.2创建自定义的快捷菜单 100
6.3.3创建快捷键 101
6.3.4创建自定义的对话框 101
6.3.5在工作表上使用ActiveX控件 102
6.3.6执行开发的成果 104
6.4使自己关心终端用户 104
6.4.1测试应用程序 104
6.4.2尽量完善应用程序的安全性 106
6.4.3让应用程序变得美观和直观 107
6.4.4创建用户帮助系统 108
6.4.5将开发工作进行归档 109
6.4.6将电子表格应用程序分发给用户 110
6.4.7在需要的时候更新电子表格应用程序 110
6.5其他开发问题 110
6.5.1用户安装的Excel版本 110
6.5.2语言问题 111
6.5.3系统速度 111
6.5.4视频模式 111
第Ⅲ部分 理解VBA 115
第7章VBA概述 115
7.1 BASIC的一些基本背景 115
7.2关于VBA 116
7.2.1对象模型 116
7.2.2 VBA与XLM的对比 116
7.3 VBA的基础知识 117
7.4 Visual Basic编辑器概述 120
7.4.1显示Excel的“开发工具”选项卡 120
7.4.2激活VBE 120
7.4.3 VBE窗口 121
7.5使用“工程资源管理器”窗口 122
7.5.1添加新的VBA模块 123
7.5.2移除VBA模块 124
7.5.3导出和导入对象 124
7.6使用“代码”窗口 124
7.6.1窗口的最小化和最大化 125
7.6.2 VBA代码的存储 125
7.6.3 VBA代码的输入 126
7.7 VBE环境的定制 132
7.7.1使用“编辑器”选项卡 132
7.7.2使用“编辑器格式”选项卡 135
7.7.3使用“通用”选项卡 136
7.7.4使用“可连接的”选项卡 136
7.8宏录制器 137
7.8.1宏录制器实际记录哪些内容 137
7.8.2相对模式还是绝对模式 138
7.8.3选项的录制 141
7.8.4整理己录制的宏 142
7.9关于对象和集合 143
7.9.1对象层次结构 144
7.9.2关于集合 144
7.9.3对象的引用 145
7.10属性和方法 145
7.10.1对象的属性 146
7.10.2对象的方法 147
7.11 Comment对象示例 148
7.11.1查看有关Comment对象的帮助 148
7.11.2 Comment对象的属性 149
7.11.3 Comment对象的方法 149
7.11.4 Comments集合 150
7.11.5关于Comment属性 151
7.11.6 Comment对象中的对象 151
7.11.7确定单元格中是否含有Comment对象 152
7.11.8添加新的Comment对象 153
7.12一些有用的应用程序属性 153
7.13 Range对象的使用 155
7.13.1 Range属性 155
7.13.2 Cells属性 157
7.13.3 Offset属性 159
7.14关于对象的更多信息 160
7.14.1需要牢记的基本概念 160
7.14.2学习有关对象和属性的更多信息 161
第8章 VBA编程基础 165
8.1 VBA语言元素概览 165
8.2注释 167
8.3变量、数据类型和常量 168
8.3.1数据类型的定义 169
8.3.2声明变量 172
8.3.3变量的作用域 174
8.3.4常量的使用 177
8.3.5字符串的使用 179
8.3.6日期的使用 179
8.4赋值语句 181
8.5数组 183
8.5.1数组的声明 183
8.5.2多维数组的声明 183
8.5.3动态数组的声明 184
8.6对象变量 184
8.7用户定义数据类型 185
8.8内置函数 186
8.9对象和集合的处理 189
8.9.1 With-End With构造 189
8.9.2 For Each-Next构造 190
8.10代码执行的控制 192
8.10.1 GoTo语句 192
8.10.2 If-Then构造 193
8.10.3 Select Case构造 196
8.10.4指令的循环块 199
第9章 VBA的Sub过程 209
9.1关于过程 209
9.1.1 Sub过程的声明 210
9.1.2过程的作用域 211
9.2执行Sub过程 212
9.2.1通过“运行子过程/用户窗体”命令执行过程 212
9.2.2从“宏”对话框执行过程 212
9.2.3用Ctrl+快捷键组合执行过程 213
9.2.4从功能区执行过程 214
9.2.5从自定义快捷菜单中执行过程 215
9.2.6从另一个过程执行过程 215
9.2.7通过单击对象执行过程 219
9.2.8在事件发生时执行过程 220
9.2.9从“立即窗口”执行过程 220
9.3向过程中传递参数 221
9.4错误处理技术 224
9.4.1捕获错误 225
9.4.2错误处理示例 226
9.5使用Sub过程的实际例子 228
9.5.1目标 229
9.5.2工程需求 229
9.5.3已经了解的信息 229
9.5.4着手处理 230
9.5.5需要了解哪些信息 230
9.5.6初步的录制工作 230
9.5.7初始设置 232
9.5.8代码的编写 232
9.5.9排序过程的编写 233
9.5.10更多的测试 237
9.5.11修复问题 238
9.5.12实用程序的可用性 241
9.5.13对工程进行评估 241
第10章 创建Function过程 243
10.1 Sub过程与Function过程的对比 243
10.2为什么创建自定义的函数 244
10.3介绍性的函数示例 244
10.3.1一个自定义函数 244
10.3.2在工作表中使用函数 245
10.3.3在VBA过程中使用函数 246
10.3.4分析自定义函数 246
10.4 Function过程 248
10.4.1声明函数 248
10.4.2函数的作用域 249
10.4.3执行Function过程 249
10.5 Function过程的参数 251
10.6函数示例 252
10.6.1无参数的函数 252
10.6.2带有一个参数的函数 254
10.6.3带有两个参数的函数 257
10.6.4使用数组作为参数的函数 258
10.6.5带有可选参数的函数 259
10.6.6返回VBA数组的函数 260
10.6.7 返回错误值的函数 263
10.6.8带有不定数量的参数的函数 264
10.7模拟Excel的SUM函数 265
10.8函数的调试 268
10.9使用“插入函数”对话框 269
10.9.1指定函数类别 270
10.9.2添加函数说明 271
10.10使用加载宏存储自定义的函数 273
10.11使用Windows API 273
10.11.1 Windows API示例 274
10.11.2确定Windows目录 274
10.11.3检测Shift键 275
10.11.4了解更多有关API函数的信息 276
第11章 VBA编程示例和技巧 277
11.1处理单元格区域 278
11.1.1复制单元格区域 278
11.1.2移动单元格区域 279
11.1.3复制大小可变的单元格区域 279
11.1.4选中或者识别各种类型的单元格区域 281
11.1.5提示输入单元格中的值 282
11.1.6在下一个空单元格中输入一个值 283
11.1.7暂停宏的运行以便获得用户选中的单元格区域 285
11.1.8计算选中的单元格的数目 286
11.1.9确定选中的单元格区域的类型 287
11.1.10有效地遍历选中的单元格区域 289
11.1.11删除所有空行 291
11.1.12任意次数地复制行 292
11.1.13确定单元格区域是否包含在另一个单元格区域内 294
11.1.14确定单元格的数据类型 294
11.1.15 读写单元格区域 295
11.1.16在单元格区域中插入值的更好方法 296
11.1.17传递一维数组中的内容 298
11.1.18将单元格区域传递给Variant类型的数组 299
11.1.19按数值选择单元格 299
11.1.20复制非连续的单元格区域 301
11.2处理工作簿和工作表 303
11.2.1保存所有工作簿 303
11.2.2保存和关闭所有工作簿 303
11.2.3隐藏除选区之外的区域 303
11.2.4同步工作表 305
11.3 VBA技巧 306
11.3.1切换布尔类型的属性值 306
11.3.2确定打印页面的数量 307
11.3.3显示日期和时间 307
11.3.4获得字体列表 309
11.3.5对数组进行排序 310
11.3.6处理一系列文件 312
11.4使用在代码中的一些有用的函数 313
11.4.1 FileExists函数 314
11.4.2 FileNameOnly函数 314
11.4.3 PathExists函数 314
11.4.4 RangeNameExists函数 315
11.4.5 SheetExists函数 315
11.4.6 WorkbookIsOpen 函数 316
11.4.7检索已经关闭的工作簿中的值 316
11.5一些有用的工作表函数 318
11.5.1返回单元格的格式信息 318
11.5.2会说话的工作表 320
11.5.3显示在保存或打印文件时的时间 320
11.5.4理解对象的父亲 321
11.5.5计算值介于两个值之间的单元格数目 322
11.5.6计算单元格区域中可见单元格的数目 322
11.5.7确定行或列中最后一个非空的单元格 323
11.5.8字符串与模式匹配 324
11.5.9从字符串中提取第n个元素 325
11.5.10多功能的函数 327
11.5.11 SheetOffset函数 328
11.5.12返回所有工作表中数据的最大值 328
11.5.13返回没有重复的随机整数元素的数组 330
11.5.14随机化单元格区域 331
11.6 Windows API调用 333
11.6.1确定文件的关联性 333
11.6.2确定磁盘驱动器信息 334
11.6.3确定默认打印机的信息 334
11.6.4确定视频显示器的信息 335
11.6.5为应用程序添加声音 337
11.6.6读写注册表 338
第Ⅳ部分 用户窗体 345
第12章 多种自定义对话框的方法 345
12.1创建用户窗体之前需要了解的内容 345
12.2使用输入框 345
12.2.1 VBA的InputBox函数的使用 346
12.2.2 Excel的InputBox方法 348
12.3 VBA的MsgBox函数 350
12.4 Excel的GetOpenFilename方法 353
12.5 Excel的GetSaveAsFilename方法 356
12.6提示输入目录名称 357
12.6.1使用Windows API函数选中目录 357
12.6.2使用FileDialog对象选中目录 359
12.7显示Excel的内置对话框 360
12.7.1关于Dialogs集合 361
12.7.2执行功能区命令 362
12.8显示数据记录单 363
12.8.1使得数据记录单变得可以访问 364
12.8.2通过使用VBA来显示数据记录单 364
第13章 用户窗体概述 365
13.1 Excel如何处理自定义对话框 365
13.2插入新的用户窗体 366
13.3向用户窗体添加控件 366
13.4“工具箱”中的控件 367
13.4.1复选框 368
13.4.2组合框 368
13.4.3命令按钮 368
13.4.4框架 368
13.4.5图像 369
13.4.6标签 369
13.4.7列表框 369
13.4.8多页 369
13.4.9选项按钮 369
13.4.10 RefEdit 369
13.4.11滚动条 369
13.4.12数值调节钮 370
13.4.13 TabStrip 370
13.4.14文本框 370
13.4.15切换按钮 370
13.5调整用户窗体的控件 371
13.6调整控件的属性 372
13.6.1使用“属性”窗口 373
13.6.2共同属性 374
13.6.3更多属性的信息 374
13.6.4适应键盘用户的需求 375
13.7显示和关闭用户窗体 377
13.7.1显示用户窗体 377
13.7.2关闭用户窗体 378
13.7.3关于事件处理程序 379
13.8创建用户窗体的示例 379
13.8.1创建用户窗体 379
13.8.2编写代码显示对话框 382
13.8.3测试对话框 383
13.8.4添加事件处理程序 384
13.8.5验证数据的有效性 385
13.8.6完成的对话框作品 385
13.9理解用户窗体的事件 386
13.9.1了解事件 386
13.9.2用户窗体的事件 387
13.9.3数值调节钮的事件 388
13.9.4数值调节钮与文本框配对 389
13.10引用用户窗体的控件 391
13.11自定义“工具箱” 392
13.11.1更改图标或提供文本 393
13.11.2添加新页 393
13.11.3自定义或组合控件 393
13.11.4添加新的ActiveX控件 394
13.12创建用户窗体的模板 395
13.13用户窗体检验表 395
第14章 用户窗体示例 397
14.1创建用户窗体式菜单 397
14.1.1在用户窗体中使用命令按钮 398
14.1.2在用户窗体中使用列表框 398
14.2从用户窗体选中单元格区域 399
14.3创建欢迎界面 401
14.4禁用用户窗体的关闭按钮 403
14.5改变用户窗体的大小 404
14.6从用户窗体缩放和滚动工作表 405
14.7列表框技巧 407
14.7.1关于列表框控件 408
14.7.2向列表框控件中添加条目 408
14.7.3确定选中的条目 412
14.7.4确定选中的列表框中的多个条目 413
14.7.5单个列表框中的多个列表 414
14.7.6列表框条目的转移 415
14.7.7在列表框中移动条目 416
14.7.8使用多列的列表框控件 418
14.7.9使用列表框选中工作表中的行 419
14.7.10使用列表框激活工作表 422
14.8在用户窗体中使用多页控件 424
14.9使用外部控件 425
14.10使标签动画化 427
第15章 用户窗体的高级技巧 431
15.1无模式对话框 431
15.2显示进度条 435
15.2.1创建独立的进度条 436
15.2.2使用多页控件显示进度条 439
15.2.3在不使用多页控件的情况下显示进度条 441
15.3创建向导 443
15.3.1为向导设置多页控件 443
15.3.2向向导用户窗体中添加按钮 444
15.3.3编写向导按钮的程序 444
15.3.4编写向导中的相关性代码 446
15.3.5使用向导执行任务 447
15.4模仿MsgBox函数 448
15.4.1模仿MsgBox:MyMsgBox代码 449
15.4.2 MyMsgBox如何运行 450
15.4.3在模仿MsgBox函数的过程中使用MyMsgBox函数 451
15.5带有可移动控件的用户窗体 451
15.6没有标题栏的用户窗体 453
15.7使用用户窗体模拟工具栏 454
15.8可调整大小的用户窗体 456
15.9用一个事件处理程序处理多个用户窗体控件 460
15.10在用户窗体中选择颜色 463
15.11在用户窗体中显示图表 464
15.11.1在用户窗体中显示图表的常规步骤 465
15.11.2将图表保存为GIF文件 465
15.11.3更改图像控件的Picture属性 465
15.12 Enhanced Data Form 466
15.12.1关于Enhanced Data Form 467
15.12.2安装Enhanced Data Form加载宏 468
15.13用户窗体上的数据推盘 468
第Ⅴ部分 高级编程技巧 473
第16章 用VBA开发 Excel实用程序 473
16.1关于Excel实用程序 473
16.2使用VBA开发实用程序 474
16.3如何造就好的实用程序 474
16.4 Text Tools:实用程序剖析 475
16.4.1 Text Tools的背景 476
16.4.2 Text Tools的工程目标 476
16.4.3 Text Tools工作簿 476
16.4.4 Text Tools实用程序的工作原理 477
16.4.5 Text Tools实用程序的用户窗体 477
16.4.6 Modulel VBA模块 479
16.4.7 UserForm 1代码模块 481
16.4.8使Text Tools实用程序变得高效 482
16.4.9保存Text Tools实用程序的设置 483
16.4.10实现撤消 485
16.4.11显示帮助文件 487
16.4.12添加RibbonX代码 488
16.4.13工程检验 490
16.4.14理解Text Tools实用程序 491
16.5获取更多关于Excel实用程序的知识 491
第17章 使用数据透视表 493
17.1介绍性数据透视表示例 493
17.1.1创建数据透视表 494
17.1.2检查录制的数据透视表代码 495
17.1.3整理录制的数据透视表代码 495
17.2创建更为复杂的数据透视表 497
17.2.1更为复杂的数据透视表的数据 497
17.2.2创建数据透视表的数据 498
17.2.3更为复杂的数据透视表的工作原理 499
17.3创建多个数据透视表 501
17.4创建倒置的数据透视表 504
第18章 使用图表 507
18.1关于图表 507
18.1.1图表的位置 507
18.1.2宏录制器和图表 508
18.1.3 Chart对象模型 509
18.2 VBA常用的制表技术 511
18.2.1创建嵌入式图表 511
18.2.2在图表工作表上创建图表 512
18.2.3使用VBA激活图表 512
18.2.4图表的移动 513
18.2.5使用VBA使图表失活 514
18.2.6确定图表是否被激活 515
18.2.7从ChartObjects或Charts集合中删除 515
18.2.8循环遍历所有图表 516
18.2.9调整ChartObjects对象的大小和排列ChartObj ects对象 518
18.2.10导出图表 519
18.2.11导出所有图形 519
18.3使用VBA来应用图表格式化 520
18.3.1格式化图表 521
18.3.2更多图表格式化示例 522
18.4修改图表中使用的数据 525
18.4.1基于活动单元格修改图表数据 526
18.4.2用VBA确定图表中使用的单元格区域 527
18.5使用VBA在图表上显示任意数据标签 530
18.6在用户窗体中显示图表 532
18.7理解图表事件 534
18.7.1使用图表事件的一个示例 535
18.7.2为嵌入式图表启用事件 537
18.7.3示例:在嵌入式图表上使用Chart事件 539
18.8 VBA制图技巧 541
18.8.1在整个页面上打印嵌入式图表 541
18.8.2幻灯片显示 541
18.8.3通过隐藏列来隐藏序列 542
18.8.4创建未链接的图表 543
18.8.5用MouseOver事件显示文本 545
18.9图表动画 547
18.9.1滚动图表 548
18.9.2创建一个内摆线图表 549
18.9.3创建一个“时钟”图表 550
18.10在不使用VBA的情况下创建一个交互式图表 552
18.10.1获取数据来创建一个交互式图表 553
18.10.2为交互式工作表创建选项按钮控件 553
18.10.3为交互式图表创建城市列表 553
18.10.4创建交互式图表的数据单元格区域 554
18.10.5创建交互式图表 555
第19章 理解Excel的事件 557
19.1 Excel可以监视的事件类型 558
19.2必须了解的关于事件的知识 558
19.2.1理解事件次序 558
19.2.2事件处理程序存放的位置 559
19.2.3禁用事件 559
19.2.4输入事件处理代码 561
19.2.5使用参数的事件处理程序 562
19.3工作簿级别的事件 563
19.3.1 Open事件 565
19.3.2 Activate事件 565
19.3.3 SheetActivate事件 566
19.3.4 NewSheet事件 566
19.3.5 BeforeSave事件 566
19.3.6 Deactivate事件 567
19.3.7 BeforePrint事件 567
19.3.8 BeforeClose事件 568
19.4工作表事件 570
19.4.1 Change事件 571
19.4.2监视特定单元格区域的修改 571
19.4.3 SelectionChange事件 576
19.4.4 BeforeDoubleClick事件 577
19.4.5 BeforeRightClick事件 577
19.5图表事件 578
19.6应用程序事件 579
19.6.1启用应用程序级别的事件 581
19.6.2确定工作簿何时被打开 581
19.6.3监视应用程序级别的事件 583
19.7用户窗体事件 584
19.8不与对象关联的事件 585
19.8.1 OnTime事件 585
19.8.2 OnKey事件 587
第20章 与其他应用程序的交互 591
20.1从Excel中启动应用程序 591
20.1.1使用VBA的Shell函数 591
20.1.2使用Windows的ShellExecute API函数 594
20.2用Excel激活应用程序 595
20.2.1使用AppActivate 595
20.2.2激活一个Microsoft Office应用程序 596
20.3运行“控制面板”对话框 596
20.4在Excel中使用自动化 598
20.4.1通过使用自动化来使用外部对象 598
20.4.2前期绑定与后期绑定 598
20.4.3后期绑定的一个示例 601
20.4.4从Excel中控制Word 601
20.4.5从其他应用程序中控制Excel 605
20.5通过Outlook发送私人的电子邮件 607
20.6从Excel中发送电子邮件附件 610
20.7使用SendKeys 612
20.8使用ADO 615
第21章 创建和使用加载宏 617
21.1什么是加载宏 617
21.1.1加载宏与标准工作簿的比较 617
21.1.2创建加载宏的原因 618
21.2理解 Excel的加载宏管理器 619
21.3创建加载宏 620
21.4加载宏示例 622
21.4.1为加载宏示例建立工作簿 622
21.4.2为加载宏示例添加描述信息 622
21.4.3创建加载宏 623
21.4.4安装加载宏 624
21.4.5测试加载宏 625
21.4.6发布加载宏 625
21.4.7修改加载宏 625
21.5比较XLAM和XLSM文件 626
21.5.1 XLSM和XLAM文件大小和结构 626
21.5.2 XLAM文件VBA集合成员 626
21.5.3 XLSM和XLAM文件的可视性 627
21.5.4 XLSM和XLAM文件的工作表和图表工作表 627
21.5.5访问加载宏中的VBA过程 628
21.6用VBA操作加载宏 630
21.6.1理解AddIns集合 630
21.6.2 AddIn对象属性 632
21.6.3作为工作簿访问加载宏 634
21.6.4 AddIn对象事件 635
21.7优化加载宏性能 635
21.8加载宏的特殊问题 636
21.8.1确保加载宏已经被安装 636
21.8.2从加载宏中引用其他文件 638
21.8.3为加载宏检测适用的Excel版本 638
第Ⅵ部分 开发应用程序 641
第22章 使用功能区 641
22.1功能区基础 641
22.2 VBA和功能区 644
22.2.1访问功能区控件 645
22.2.2使用功能区 646
22.2.3激活选项卡 647
22.3定制功能区 648
22.3.1 RibbonX的一个简单示例 648
22.3.2更多关于RibbonX的简单示例的内容 651
22.3.3 RibbonX的另一个示例 653
22.3.4功能区控件演示 656
22.3.5 dynamicMenu控件示例 662
22.3.6更多关于功能区定制的内容 664
22.4创建老式工具栏 666
22.4.1 Excel 2007老式工具栏的局限性 666
22.4.2创建工具栏的代码 666
第23章 使用快捷菜单 669
23.1 CommandBar对象 669
23.1.1 CommandBar类型 670
23.1.2列出快捷菜单 670
23.1.3引用命令栏 671
23.1.4引用命令栏中的控件 671
23.1.5命令栏控件的属性 673
23.1.6显示所有的快捷菜单项 673
23.2使用VBA定制快捷菜单 675
23.2.1恢复快捷菜单 675
23.2.2禁用快捷菜单 675
23.2.3禁用快捷菜单项 676
23.2.4向单元格快捷菜单中添加一个新项 676
23.2.5向快捷菜单中添加一个子菜单 678
23.3快捷菜单与事件 680
23.3.1自动添加和删除菜单 681
23.3.2禁用或隐藏快捷菜单项 682
23.3.3创建一个上下文相关的快捷菜单 682
第24章 为应用程序提供帮助 685
24.1 Excel应用程序的“帮助” 685
24.2使用Excel组件的帮助系统 687
24.2.1为帮助系统使用单元格组件 687
24.2.2为帮助系统使用文本框 688
24.2.3使用工作表来显示帮助文本 689
24.2.4在用户窗体中显示帮助 690
24.3在Web浏览器中显示“帮助” 694
24.3.1使用HTML文件 694
24.3.2使用一个MHTML文件 695
24.4使用HTML帮助系统 696
24.4.1使用Help方法来显示HTML帮助 698
24.4.2使用API应用程序来显示HTML帮助 698
24.5将“帮助”文件与应用程序相关联 699
第25章 开发面向用户的应用程序 701
25.1什么是面向用户的应用程序 701
25.2 Loan Amortization Wizard 701
25.2.1使用Load Amortization Wizard 702
25.2.2 Load Amortization Wizard 的工作簿结构 703
25.2.3 Load Amortization Wizard 的工作原理 704
25.2.4增强Load Amortization Wizard的潜能 710
25.3应用程序开发概念 710
第Ⅶ部分 其他主题 715
第26章 兼容性问题 715
26.1什么是兼容性 715
26.2兼容性问题的类型 716
26.3避免使用新特性 717
26.4兼容性检查器在Mac机器上是否有用 718
26.5创建一个国际化的应用程序 719
26.5.1多语言应用程序 720
26.5.2 VBA语言的考虑 721
26.5.3使用本地属性 721
26.5.4系统设置识别 722
26.5.5日期和时间设置 724
第27章 用VBA处理文件 725
27.1执行常见的文件操作 725
27.1.1使用VBA文件相关指令 726
27.1.2使用FileSystemObject对象 730
27.2显示扩展文件信息 733
27.3文本文件的处理 735
27.3.1打开文本文件 736
27.3.2读取文本文件 737
27.3.3编写文本文件 737
27.3.4获取文件序号 737
27.3.5确定或设置文件位置 737
27.3.6读写语句 737
27.4文本文件操作示例 738
27.4.1导入文本文件中的数据 738
27.4.2将单元格区域的数据导出到文本文件中 739
27.4.3将文本文件的内容导入到单元格区域中 740
27.4.4记录Excel日志的用法 741
27.4.5筛选文本文件 742
27.4.6导出单元格区域的数据为HTML格式 742
27.4.7导出单元格区域到XML文件 745
27.5压缩和解压缩文件 747
27.5.1压缩文件 748
27.5.2解压缩文件 750
第28章 使用Visual Basic组件 751
28.1 IDE介绍 751
28.2 IDE对象模型 753
28.3显示VBA工程中的所有组件 755
28.4列出工作簿中的所有VBA过程 757
28.5用更新版本替换模块 758
28.6使用VBA编写VBA代码 760
28.7在设计时向用户窗体中添加控件 761
28.7.1设计时与运行时的用户窗体操作对比 762
28.7.2在设计时添加100个命令按钮 763
28.8通过编程创建用户窗体 765
28.8.1一个简单的运行时用户窗体示例 765
28.8.2一个有用(但是不简单)的动态用户窗体示例 766
第29章 理解类模块 773
29.1什么是类模块 773
29.2示例:创建NumLock类 774
29.2.1插入类模块 774
29.2.2给类模块添加VBA代码 775
29.2.3使用NumLockClass类 777
29.3更多有关类模块的信息 778
29.3.1命名对象类 779
29.3.2对象属性编程 779
29.3.3对象方法编程 780
29.3.4类模块事件 781
29.4示例:CSV文件类 781
29.4.1 CSVFileClass的类模块级变量 782
29.4.2 CSVFileClass的属性过程 782
29.4.3 CSVFiIeClass的方法过程 782
29.4.4使用CSVFiIeClass对象 784
第30章 使用颜色 787
30.1指定颜色 787
31.1.1 RGB颜色系统 788
30.1.2 HSL颜色系统 788
30.1.3转换颜色 789
30.2理解灰阶模式 791
30.2.1将彩色转换为灰色 791
30.2.2以灰阶模式浏览图表 792
30.3颜色实验 793
30.4理解文档主题 794
30.4.1关于文档主题 794
30.4.2理解文档主题颜色 794
30.4.3显示所有的主题颜色 797
30.5使用Shape对象 799
30.5.1形状的背景色 800
30.5.2对形状使用其他填充类型 801
30.5.3了解更多关于形状的内容 806
30.6修改图表颜色 806
第31章 有关Excel编程的常见问题 811
31.1 Excel一般问题 812
31.2 VBE 816
31.3过程 819
31.4函数 823
31.5对象、属性、方法和事件 825
31.6用户窗体 832
31.7加载宏 836
31.8用户界面 838
第Ⅷ部分 附录 843
附录A Excel在线资源 843
附录B VBA语句和函数引用 849
附录C VBA错误代码 859
附录D 本书附带的示例文件包中的内容 863