第Ⅰ部分Excel基础知识 3
第1章Excel 2010的起源 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.1.5当前面临的竞争 11
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宏工作表 18
2.2.4 Excel 5/95对话框编辑表 19
2.3 Excel的用户界面 19
2.3.1功能区的引入 20
2.3.2快捷菜单和浮动工具栏 24
2.3.3对话框 25
2.3.4键盘快捷键 26
2.3.5智能标记 26
2.3.6任务窗格 27
2.4自定义屏幕显示 27
2.5数据录入 28
2.6公式、函数和名称 28
2.7选择对象 29
2.8格式 30
2.9保护选项 31
2.9.1保护公式以防被重写 31
2.9.2保护工作簿的结构 32
2.9.3使用密码来保护工作簿 32
2.9.4使用密码来保护VBA代码 33
2.10图表 33
2.11图示和SmartArt 34
2.12数据库访问 35
2.12.1工作表数据库 35
2.12.2外部数据库 35
2.13 Internet特性 36
2.14分析工具 36
2.15加载项 37
2.16宏和编程 38
2.17文件格式 38
2.18 Excel的帮助系统 38
第3章 公式的使用技巧 41
3.1公式概述 41
3.2计算公式 42
3.3单元格和单元格区域引用 43
3.3.1为什么使用不是相对的引用 43
3.3.2 R1C1表示法 44
3.3.3引用其他的工作表或工作簿 44
3.4使用名称 46
3.4.1命名单元格和单元格区域 46
3.4.2将名称应用于现有的引用中 47
3.4.3交叉名称 48
3.4.4命名列和行 48
3.4.5名称的作用范围 48
3.4.6命名常量 49
3.4.7命名公式 50
3.4.8命名对象 51
3.5公式错误 52
3.6数组公式 53
3.6.1一个数组公式的示例 53
3.6.2数组公式日历 54
3.6.3数组公式的优缺点 55
3.7计数和求和技巧 55
3.7.1计数公式的示例 56
3.7.2求和公式的示例 56
3.7.3其他计数工具 57
3.8使用日期和时间 57
3.8.1输入日期和时间 58
3.8.2使用1900年之前的日期 58
3.9创建大公式 59
第4章 理解Excel的文件 63
4.1启动Excel 63
4.2文件类型 65
4.2.1 Excel文件格式 65
4.2.2文本文件格式 66
4.2.3数据库文件格式 67
4.2.4其他文件格式 67
4.3模板文件的处理 68
4.3.1查看模板 68
4.3.2创建模板 69
4.3.3创建工作簿模板 71
4.4 Excel文件的内部情况 71
4.4.1仔细分析一个文件 72
4.4.2为什么文件格式很重要 74
4.5 OfficeUI文件 75
4.6 XLB文件 76
4.7加载项文件 76
4.8 Excel在注册表中的设置 77
4.8.1关于注册表 77
4.8.2 Excel的设置 78
第Ⅱ部分Excel应用程序开发 83
第5章 电子表格应用程序的内涵 83
5.1电子表格应用程序 83
5.2开发人员和终端用户 84
5.2.1开发人员的定义及其工作 84
5.2.2电子表格应用程序用户的分类 85
5.2.3电子表格应用程序的客户 86
5.3用Excel解决问题 86
5.4基本的电子表格应用程序类型 87
5.4.1快捷但质量不高的电子表格应用程序 88
5.4.2自己创作、自己使用的电子表格应用程序 88
5.4.3单用户电子表格应用程序 88
5.4.4意大利面条式电子表格应用程序 89
5.4.5实用电子表格应用程序 89
5.4.6包含工作表函数的加载项电子表格 90
5.4.7单元块预算式电子表格应用程序 90
5.4.8假设分析模型式电子表格应用程序 90
5.4.9数据存储和访问电子表格应用程序 91
5.4.10数据库前端电子表格应用程序 91
5.4.11统包式电子表格应用程序 91
第6章 电子表格应用程序开发的基础 93
6.1应用程序的开发步骤 93
6.2确定用户需求 94
6.3规划满足用户需求的应用程序 94
6.4确定最合适的用户界面 97
6.4.1创建自定义的功能区 98
6.4.2创建自定义的快捷菜单 98
6.4.3创建快捷键 99
6.4.4创建自定义对话框 99
6.4.5在工作表上使用ActiveX控件 100
6.4.6执行开发的成果 101
6.5关心终端用户 101
6.5.1测试应用程序 101
6.5.2尽量完善应用程序的安全性 103
6.5.3让应用程序变得美观和直观 104
6.5.4创建用户帮助系统 105
6.5.5将开发工作进行归档 106
6.5.6将电子表格应用程序分发给用户 106
6.5.7在需要的时候更新电子表格应用程序 107
6.6其他开发问题 107
6.6.1用户安装的Excel版本 107
6.6.2语言问题 108
6.6.3系统速度 108
6.6.4视频模式 108
第Ⅲ部分 理解VBA 113
第7章VBA概述 113
7.1 BASIC的一些基本背景 113
7.2关于VBA 114
7.2.1对象模型 114
7.2.2 VBA与XLM的对比 114
7.3 VBA的基础知识 115
7.4 Visual Basic编辑器概述 118
7.4.1显示Excel的“开发工具”选项卡 118
7.4.2激活VBE 118
7.4.3 VBE窗口 119
7.5使用“工程资源管理器”窗口 120
7.5.1添加新的VBA模块 121
7.5.2移除VBA模块 121
7.5.3导出和导入对象 121
7.6使用“代码”窗口 122
7.6.1窗口的最小化和最大化 122
7.6.2 VBA代码的存储 123
7.6.3 VBA代码的输入 123
7.7 VBE环境的定制 129
7.7.1使用“编辑器”选项卡 129
7.7.2使用“编辑器格式”选项卡 132
7.7.3使用“通用”选项卡 133
7.7.4使用“可连接的”选项卡 134
7.8宏录制器 134
7.8.1宏录制器实际记录哪些内容 135
7.8.2相对模式还是绝对模式 136
7.8.3选项的录制 138
7.8.4清理己录制的宏 139
7.9关于对象和集合 141
7.9.1对象层次结构 141
7.9.2关于集合 141
7.9.3对象的引用 142
7.10属性和方法 143
7.10.1对象的属性 143
7.10.2对象的方法 144
7.11 Comment对象示例 146
7.11.1查看有关Comment对象的帮助 146
7.11.2 Comment对象的属性 147
7.11.3 Comment对象的方法 147
7.11.4 Comments集合 147
7.11.5关于Comment属性 148
7.11.6 Comment对象中的对象 149
7.11.7确定单元格中是否含有Comment对象 150
7.11.8添加新的Comment对象 150
7.12一些有用的应用程序属性 151
7.13 Range对象的使用 152
7.13.1 Range属性 153
7.13.2 Cells属性 155
7.13.3 Offset属性 157
7.14关于对象的更多信息 158
7.14.1需要牢记的基本概念 158
7.14.2学习有关对象和属性的更多信息 159
第8章VBA编程基础 163
8.1 VBA语言元素概览 163
8.2注释 165
8.3变量、数据类型和常量 166
8.3.1数据类型的定义 167
8.3.2声明变量 169
8.3.3变量的作用域 172
8.3.4常量的使用 175
8.3.5字符串的使用 177
8.3.6日期的使用 177
8.4赋值语句 178
8.5数组 181
8.5.1数组的声明 181
8.5.2多维数组的声明 181
8.5.3动态数组的声明 182
8.6对象变量 182
8.7用户自定义数据类型 183
8.8内置函数 184
8.9对象和集合的处理 187
8.9.1 With-End With结构 187
8.9.2 For Each-Next结构 188
8.10代码执行的控制 189
8.10.1 GoTo语句 190
8.10.2 If-Then结构 190
8.10.3 Select Case结构 194
8.10.4指令块的循环 197
第9章VBA的Sub过程 205
9.1关于过程 205
9.1.1 Sub过程的声明 206
9.1.2过程的作用域 207
9.2执行Sub过程 208
9.2.1通过“运行子过程/用户窗体”命令执行过程 208
9.2.2从“宏”对话框执行过程 208
9.2.3用Ctrl+快捷键组合执行过程 209
9.2.4从功能区执行过程 210
9.2.5从自定义快捷菜单中执行过程 210
9.2.6从另一个过程中执行过程 211
9.2.7通过单击对象执行过程 215
9.2.8在事件发生时执行过程 216
9.2.9从“立即窗口”执行过程 216
9.3向过程中传递参数 217
9.4错误处理技术 220
9.4.1捕获错误 220
9.4.2错误处理示例 222
9.5使用Sub过程的实际示例 224
9.5.1目标 225
9.5.2工程需求 225
9.5.3已经了解的信息 225
9.5.4解决方法 226
9.5.5需要了解哪些信息 226
9.5.6初步的录制工作 226
9.5.7初始设置 228
9.5.8代码的编写 228
9.5.9排序过程的编写 229
9.5.10更多的测试 233
9.5.11修复问题 233
9.5.12实用程序的可用性 237
9.5.13对工程进行评估 237
第10章 创建Function过程 239
10.1 Sub过程与Function过程的比较 239
10.2为什么创建自定义的函数 240
10.3介绍性的函数示例 240
10.3.1在工作表中使用函数 241
10.3.2在VBA过程中使用函数 241
10.3.3分析自定义函数 242
10.4 Function过程 244
10.4.1函数的作用域 245
10.4.2执行Function过程 245
10.5 Function过程的参数 248
10.6函数示例 249
10.6.1无参数的函数 249
10.6.2带有一个参数的函数 251
10.6.3带有两个参数的函数 254
10.6.4使用数组作为参数的函数 255
10.6.5带有可选参数的函数 256
10.6.6返回VBA数组的函数 257
10.6.7返回错误值的函数 260
10.6.8带有不定数量参数的函数 261
10.7模拟Excel的SUM函数 262
10.8扩展的日期函数 265
10.9函数的调试 267
10.10使用“插入函数” 对话框 268
10.10.1使用MacroOptions方法 269
10.10.2指定函数类别 270
10.10.3手动添加函数说明 271
10.11使用加载项存储自定义的函数 272
10.12使用Windows API 273
10.12.1 Windows API示例 273
10.12.2确定Windows目录 274
10.12.3检测Shift 275
10.12.4了解更多有关API函数的信息 275
第11章VBA编程示例和技巧 277
11.1通过示例学习 277
11.2处理单元格区域 278
11.2.1复制单元格区域 278
11.2.2移动单元格区域 279
11.2.3复制大小可变的单元格区域 279
11.2.4选中或者识别各种类型的单元格区域 281
11.2.5提示输入单元格中的值 282
11.2.6在下一个空单元格中输入一个值 284
11.2.7暂停宏的运行以便获得用户选中的单元格区域 285
11.2.8计算选中的单元格的数目 286
11.2.9确定选中的单元格区域的类型 287
11.2.10有效地循环遍历选中的单元格区域 289
11.2.11删除所有空行 292
11.2.12任意次数地复制行 292
11.2.13确定单元格区域是否包含在另一个单元格 区域内 294
11.2.14确定单元格的数据类型 294
11.2.15 读写单元格区域 295
11.2.16在单元格区域中写入值的更好方法 296
11.2.17传递一维数组中的内容 298
11.2.18将单元格区域传递给Variant类型的数组 299
11.2.19按数值选择单元格 299
11.2.20 复制非连续的单元格区域 301
11.3处理工作簿和工作表 302
11.3.1保存所有工作簿 302
11.3.2保存和关闭所有工作簿 303
11.3.3隐藏除选区之外的区域 303
11.3.4同步工作表 304
11.4 VBA技巧 305
11.4.1切换布尔类型的属性值 305
11.4.2确定打印页面的数量 306
11.4.3显示日期和时间 307
11.4.4获得字体列表 308
11.4.5对数组进行排序 309
11.4.6处理一系列文件 311
11.5使用在代码中的一些有用的函数 312
11.5.1 FileExists函数 313
11.5.2 FileNameOnly函数 313
11.5.3 PathExists函数 313
11.5.4 RangeNameExists函数 314
11.5.5 SheetExists函数 315
11.5.6 WorkbookIsOpen函数 315
11.5.7检索已经关闭的工作簿中的值 315
11.6一些有用的工作表函数 317
11.6.1返回单元格的格式信息 317
11.6.2会说话的工作表 318
11.6.3显示在保存或打印文件时的时间 319
11.6.4理解对象的父对象 320
11.6.5计算介于两个值之间的单元格数目 321
11.6.6确定行或列中最后一个非空的单元格 321
11.6.7字符串与模式匹配 323
11.6.8从字符串中提取第n个元素 324
11.6.9拼写出数字 325
11.6.10多功能的函数 325
11.6.11 SheetOffset函数 326
11.6.12返回所有工作表中数据的最大值 327
11.6.13返回没有重复的随机整数元素的数组 328
11.6.14随机化单元格区域 329
11.7 Windows API调用 331
11.7.1确定文件的关联性 331
11.7.2确定磁盘驱动器信息 332
11.7.3确定默认打印机的信息 332
11.7.4确定视频显示器的信息 333
11.7.5为应用程序添加声音 334
11.7.6读写注册表 336
第Ⅳ部分 用户窗体 341
第12章 多种自定义对话框的方法 341
12.1创建用户窗体之前需要了解的内容 341
12.2使用输入框 341
12.2.1 VBA的InputBox函数 341
12.2.2 Excel的InputBox方法 343
12.3 VBA的MsgBox函数 346
12.4 Excel的GetOpenFilename方法 349
12.5 Excel的GetSaveAsFilename方法 353
12.6提示输入目录名称 353
12.7显示Excel的内置对话框 354
12.8显示数据记录单 356
12.8.1使得数据记录单变得可以访问 356
12.8.2通过使用VBA来显示数据记录单 357
第13章 用户窗体概述 359
13.1 Excel如何处理自定义对话框 359
13.2插入新的用户窗体 360
13.3向用户窗体中添加控件 360
13.4“工具箱”中的控件 361
13.4.1复选框 362
13.4.2组合框 362
13.4.3命令按钮 362
13.4.4框架 362
13.4.5图像 362
13.4.6标签 363
13.4.7列表框 363
13.4.8多页 363
13.4.9选项按钮 363
13.4.10 RefEdit 363
13.4.11滚动条 363
13.4.12数值调节钮 363
13.4.13 TabStrip 364
13.4.14文本框 364
13.4.15切换按钮 364
13.5调整用户窗体的控件 365
13.6调整控件的属性 366
13.6.1使用“属性”窗口 366
13.6.2共同属性 367
13.6.3满足键盘用户的需求 368
13.7显示用户窗体 370
13.7.1显示无模式的用户窗体 370
13.7.2显示基于变量的用户窗体 370
13.7.3加载用户窗体 371
13.7.4关于事件处理程序 371
13.8关闭用户窗体 371
13.9创建用户窗体的示例 372
13.9.1创建用户窗体 373
13.9.2编写代码显示对话框 375
13.9.3测试对话框 376
13.9.4添加事件处理程序 376
13.9.5验证数据的有效性 377
13.9.6完成的对话框作品 378
13.10理解用户窗体的事件 378
13.10.1了解事件 378
13.10.2用户窗体的事件 379
13.10.3数值调节钮的事件 380
13.10.4数值调节钮与文本框配套使用 381
13.11引用用户窗体的控件 383
13.12自定义“工具箱” 384
13.12.1在“工具箱”中添加新页 385
13.12.2自定义或组合控件 385
13.12.3添加新的ActiveX控件 386
13.13创建用户窗体的模板 387
13.14用户窗体检验表 387
第14章 用户窗体示例 389
14.1创建用户窗体式菜单 389
14.1.1在用户窗体中使用命令按钮 389
14.1.2在用户窗体中使用列表框 390
14.2从用户窗体选中单元格区域 391
14.3创建欢迎界面 393
14.4禁用用户窗体的关闭按钮 395
14.5改变用户窗体的大小 396
14.6从用户窗体中缩放和滚动工作表 397
14.7列表框技巧 399
14.7.1向列表框控件中添加条目 400
14.7.2确定选中的条目 404
14.7.3确定选中的列表框中的多个条目 404
14.7.4单个列表框中的多个 列表 405
14.7.5列表框条目的转移 406
14.7.6在列表框中移动条目 407
14.7.7使用多列的列表框控件 409
14.7.8使用列表框选中工作表中的行 411
14.7.9使用列表框激活工作表 413
14.8在用户窗体中使用多页控件 415
14.9使用外部控件 416
14.10使标签动画化 418
第15章 用户窗体的高级技巧 423
15.1无模式对话框 423
15.2显示进度条 427
15.2.1创建独立的进度条 428
15.2.2使用多页控件显示进度条 431
15.2.3在不使用多页控件的情况下显示进度条 433
15.3创建向导 434
15.3.1为向导设置多页控件 435
15.3.2向向导用户窗体中添加按钮 436
15.3.3编写向导按钮的程序 436
15.3.4编写向导中的相关代码 437
15.3.5使用向导执行任务 439
15.4模仿MsgBox函数 440
15.4.1模仿MsgBox函数:MyMsgBox函数的代码 441
15.4.2 MyMsgBox函数的工作原理 442
15.4.3使用MyMsgBox函数 443
15.5带有可移动控件的用户窗体 443
15.6没有标题栏的用户窗体 445
15.7使用用户窗体模拟工具栏 446
15.8可调整大小的用户窗体 448
15.9用一个事件处理程序处理多个用户窗体控件 452
15.10在用户窗体中选择颜色 454
15.11在用户窗体中显示图表 456
15.11.1将图表保存为GIF文件 457
15.11.2更改图像控件的Picture属性 457
15.12使用户窗体半透明 458
15.13增强型数据记录单 459
15.13.1关于Enhanced Data Form加载项 460
15.13.2安装 Enhanced Data Form加载项 461
15.14用户窗体上的数字推盘 462
15.15 用户窗体上的电动扑克 462
第Ⅴ部分 高级编程技巧 467
第16章用VBA开发Excel实用程序 467
16.1关于Excel实用程序 467
16.2使用VBA开发实用程序 468
16.3如何开发好的实用程序 468
16.4 Text Tools:实用程序剖析 469
16.4.1 Text Tools的背景 470
16.4.2 Text Tools的工程目标 470
16.4.3 Text Tools 工作簿 470
16.4.4 Text Tools实用程序的工作原理 471
16.4.5 Text Tools实用程序的用户窗体 471
16.4.6 Modulel VBA模块 473
16.4.7 UserForml代码模块 474
16.4.8提高Text Tools实用程序的效率 476
16.4.9保存Text Tools实用程序的设置 477
16.4.10实现撤消 478
16.4.11显示帮助文件 481
16.4.12添加RibbonX代码 481
16.4.13工程验收 483
16.4.14理解Text Tools实用程序 483
16.5获取更多关于Excel实用程序的知识 483
第17章 使用数据透视表 485
17.1介绍性数据透视表示例 485
17.1.1创建数据透视表 486
17.1.2检查录制的数据透视表代码 488
17.1.3整理录制的数据透视表代码 488
17.2创建更为复杂的数据透视表 490
17.2.1创建数据透视表的代码 491
17.2.2更为复杂的数据透视表的工作原理 492
17.3创建多个数据透视表 494
17.4创建转换的数据透视表 497
第18章 使用图表 501
18.1关于图表 501
18.1.1图表的位置 501
18.1.2宏录制器和图表 502
18.1.3 Chart对象模型 502
18.2创建嵌入式图表 504
18.3在图表工作表上创建图表 505
18.4使用VBA激活图表 506
18.5图表的移动 507
18.6使用VBA使图表取消激活 508
18.7确定图表是否被激活 508
18.8从ChartObjects或Charts集合中删除图表 509
18.9循环遍历所有图表 510
18.10调整ChartObj ects对象的大小并对齐 512
18.11导出图表 514
18.12修改图表中使用的数据 515
18.12.1基于活动单元格修改图表数据 516
18.12.2用VBA确定图表中使用的单元格区域 518
18.13使用VBA在图表上显示任意数据标签 521
18.14在用户窗体中显示图表 523
18.15 理解图表事件 525
18.15.1使用图表事件的一个示例 526
18.15.2为嵌入式图表启用事件 528
18.15.3示例:在嵌入式图表上使用Chart事件 529
18.16 VBA制图技巧 531
18.16.1在整个页面上打印嵌入式图表 532
18.16.2通过隐藏列来隐藏序列 532
18.16.3创建未链接的图表 533
18.16.4用MouseOver事件显示文本 535
18.17图表动画 537
18.17.1滚动图表 538
18.17.2创建一个内摆线图表 539
18.17.3创建一个“时钟”图表 540
18.18在不使用VBA的情况下创建一个交互式图表 542
18.18.1获取数据来创建一个交互式图表 543
18.18.2为交互式工作表创建选项按钮控件 543
18.18.3为交互式图表创建城市列表 543
18.18.4创建交互式图表的数据单元格区域 544
18.18.5创建交互式图表 545
18.19使用迷你图 545
第19章 理解Excel的事件 549
19.1 Excel可以监视的事件类型 549
19.1.1理解事件发生的顺序 550
19.1.2事件处理程序存放的位置 550
19.1.3禁用事件 551
19.1.4输入事件处理代码 552
19.1.5使用参数的事件处理程序 553
19.2工作簿级别的事件 555
19.2.1 Open事件 556
19.2.2 Activate事件 557
19.2.3 SheetActivate事件 557
19.2.4 NewSheet事件 557
19.2.5 BeforeSave事件 557
19.2.6 Deactivate事件 558
19.2.7 BeforePrint事件 558
19.2.8 BeforeClose事件 560
19.3检查工作表事件 561
19.3.1 Change事件 562
19.3.2监视特定单元格区域的修改 563
19.3.3 SelectionChange事件 567
19.3.4 BeforeDoubleClick事件 568
19.3.5 BeforeRightClick事件 569
19.4检查图表事件 569
19.5监视应用程序事件 571
19.5.1启用应用程序级别的事件 572
19.5.2确定工作簿何时被打开 572
19.5.3监视应用程序级别的事件 573
19.6使用用户窗体事件 575
19.7访问与对象无关联的事件 576
19.7.1 OnTime事件 576
19.7.2 OnKey事件 577
第20章 与其他应用程序的交互 583
20.1从Excel中启动应用程序 583
20.1.1使用VBA的Shell函数 583
20.1.2使用Windows的ShellExecute API函数 585
20.2用Excel激活应用程序 587
20.2.1使用AppActivate语句 587
20.2.2激活一个Microsoft Office应用程序 587
20.3运行“控制面板”对话框 588
20.4在Excel中使用自动化 589
20.4.1通过使用自动化来使用外部对象 590
20.4.2前期绑定与后期绑定 590
20.4.3后期绑定的一个示例 592
20.4.4从Excel中控制Word 593
20.4.5从其他应用程序中控制Excel 596
20.5通过Outlook发送个性化的电子邮件 598
20.6从Excel中发送电子邮件附件 601
20.7使用SendKeys 603
第21章 创建和使用加载项 605
21.1什么是加载项 605
21.1.1加载项与标准工作簿的比较 605
21.1.2创建加载项的原因 606
21.2理解Excel的加载项管理器 607
21.3创建加载项 608
21.4加载项示例 610
21.4.1为加载项示例添加描述信息 611
21.4.2创建加载项 611
21.4.3安装加载项 611
21.4.4测试加载项 613
21.4.5发布加载项 613
21.4.6修改加载项 613
21.5比较XLAM和XLSM文件 614
21.5.1 XLAM文件中的VBA集合成员 614
21.5.2 XLSM和XLAM文件的可见性 615
21.5.3 XLSM和XLAM文件的工作表和图表工作表 615
21.5.4访问加载项中的VBA 过程 616
21.6用VBA操作加载项 619
21.6.1 AddIn对象属性 621
21.6.2作为工作簿访问加载项 623
21.6.3 AddIn对象事件 624
21.7优化加载项的性能 624
21.8加载项的特殊问题 625
21.8.1确保加载项已经安装 625
21.8.2从加载项中引用其他文件 627
21.8.3为加载项检测适用的Excel版本 627
第Ⅵ部分 开发应用程序 631
第22章 使用功能区 631
22.1功能区基础 631
22.2 VBA和功能区 634
22.2.1访问功能区控件 635
22.2.2使用功能区 636
22.2.3激活选项卡 638
22.3定制功能区 639
22.3.1 RibbonX的一个简单示例 639
22.3.2功能区的一个简单示例(修改版) 642
22.3.3 RibbonX的另一个示例 645
22.3.4功能区控件演示 648
22.3.5 dynamicMenu控件示例 654
22.3.6更多关于功能区定制的内容 656
22.4创建老式工具栏 658
22.4.1 Exce12010老式工具栏的局限性 658
22.4.2创建工具栏的代码 658
第23章 使用快捷菜单 661
23.1命令栏简介 661
23.1.1命令栏的类型 661
23.1.2列出快捷菜单 662
23.1.3引用命令栏 662
23.1.4引用命令栏中的控件 663
23.1.5命令栏控件的属性 664
23.1.6显示所有的快捷菜单项 664
23.2使用VBA定制快捷菜单 667
23.2.1重置快捷菜单 667
23.2.2禁用快捷菜单 668
23.2.3禁用快捷菜单项 668
23.2.4向“单元格”快捷菜单中添加一个新项 668
23.2.5向快捷菜单中添加一个 子菜单 670
23.3快捷菜单与事件 672
23.3.1自动添加和删除菜单 673
23.3.2禁用或隐藏快捷菜单项 674
23.3.3创建一个上下文相关的快捷菜单 674
第24章 为应用程序提供帮助 677
24.1 Excel应用程序的“帮助” 677
24.2使用Excel组件的帮助系统 679
24.2.1为帮助系统使用单元格批注 680
24.2.2为帮助系统使用文本框 681
24.2.3使用工作表来显示帮助文本 682
24.2.4在用户窗体中显示帮助 683
24.3在Web浏览器中显示“帮助” 686
24.3.1使用HTML文件 686
24.3.2使用一个MHTML文件 687
24.4使用HTML帮助系统 688
24.5将“帮助”文件与应用程序相关联 691
第25章 开发面向用户的应用 程序 693
25.1什么是面向用户的应用程序 693
25.2 Loan Amortization Wizard 693
25.2.1使用Load Amortization Wizard 694
25.2.2 Load Amortization Wizard的工作簿结构 695
25.2.3 Load Amortization Wizard的工作原理 696
25.2.4可以增强Load AmortizationWizard的地方 702
25.3应用程序开发概念 702
第Ⅶ部分 其他主题 707
第26章 兼容性问题 707
26.1什么是兼容性 707
26.2兼容性问题的类型 707
26.3避免使用新功能 709
26.4在Mac机器上是否可用 710
26.5处理64位Excel 711
26.6创建一个国际化的应用程序 712
26.6.1多语言应用程序 713
26.6.2 VBA语言的考虑 714
26.6.3使用本地属性 714
26.6.4系统设置识别 715
26.6.5日期和时间设置 717
第27章用VBA处理文件 719
27.1执行常见的文件操作 719
27.1.1使用与VBA文件相关的指令 720
27.1.2使用FileSystemObject对象 724
27.2显示扩展文件信息 727
27.3文本文件的处理 729
27.3.1打开文本文件 730
27.3.2读取文本文件 730
27.3.3编写文本文件 731
27.3.4获取文件序号 731
27.3.5确定或设置文件位置 731
27.3.6读写语句 731
27.4文本文件操作示例 732
27.4.1导入文本文件中的数据 732
27.4.2将单元格区域的数据导出到文本文件中 733
27.4.3将文本文件的内容导入到单元格区域中 735
27.4.4记录Excel日志的用法 736
27.4.5筛选文本文件 737
27.4.6导出单元格区域的数据为HTML格式 737
27.4.7导出单元格区域到XML文件 740
27.5压缩和解压缩文件 742
27.5.1压缩文件 743
27.5.2解压缩文件 744
27.6使用ADO 745
第28章 使用Visual Basic组件 749
28.1 IDE简介 749
28.2 IDE对象模型 751
28.3显示VBA工程中的所有组件 753
28.4列出工作簿中的所有VBA过程 755
28.5用更新版本替换模块 756
28.6使用VBA编写VBA代码 758
28.7在设计时向用户窗体中添加控件 760
28.7.1设计时与运行时的用户窗体操作对比 760
28.7.2在设计时添加100个命令按钮 761
28.8通过编程创建用户窗体 763
28.8.1一个简单的运行时用户窗体示例 763
28.8.2一个有用(但是不简单)的动态用户窗体示例 764
第29章 理解类模块 771
29.1什么是类模块 771
29.2示例:创建NumLock类 772
29.2.1插入类模块 772
29.2.2给类模块添加VBA代码 773
29.2.3使用NumLockClass类 775
29.3更多有关类模块的信息 776
29.3.1对象属性编程 776
29.3.2对象的方法编程 778
29.3.3类模块事件 778
29.4示例:CSV文件类 779
29.4.1 CSVFileClass的类模块级变量 779
29.4.2 CSVFileClass的属性过程 779
29.4.3 CSVFileClass的方法过程 780
29.4.4使用CSVFileClass对象 781
第30章 使用颜色 785
30.1指定颜色 785
30.1.1 RGB颜色系统 786
30.1.2 HSL颜色系统 786
30.1.3转换颜色 787
30.2理解灰度模式 789
30.2.1将彩色转换为灰色 790
30.2.2以灰度模式浏览图表 791
30.3颜色实验 792
30.4理解文档主题 793
30.4.1关于文档主题 793
30.4.2理解文档主题颜色 794
30.4.3显示所有的主题颜色 796
30.5使用Shape对象 798
30.5.1图示的背景色 799
30.5.2图示和主题颜色 801
30.5.3图示示例 802
30.6修改图表颜色 803
第31章 有关Excel编程的常见问题 807
31.1获得关于FAQ的信息 807
31.2 Excel的一般问题 808
31.3 VBE 812
31.4过程 814
31.5函数 818
31.6对象、属性、方法和事件 821
31.7用户窗体 829
31.8加载项 833
31.9用户界面 835
第Ⅷ部分 附录 839
附录A Excel在线资源 839
附录BVBA语句和函数引用 845
附录C VBA错误代码 853
附录D本书的下载文件包中的内容 857