《中文版Excel2016高级VBA编程宝典》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(美)Michael Alexander,(美)Dick Kusleika著;姚瑶,王战红译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:9787302471066
  • 页数:626 页
图书介绍:本书全面介绍VBA,精确讲解如何创建自定义的对话框和用户窗体,还呈现诸多高级编程技术,如开发实用程序以及使用VBA处理透视表和图表等。具体包括Excel概述、公式的使用技巧、理解Excel的文件、电子表格应用程序开发的基础知识、VBA概述、VBA编程基础、VBA的Sub过程、 创建Function过程、VBA编程示例和技巧、多种自定义对话框的方法、用户窗体概述、用户窗体示例等。

第Ⅰ部分Excel VBA基础知识 3

第1章 电子表格应用开发入门 3

1.1关于电子表格应用 3

1.2应用开发的步骤 4

1.3确定用户的需求 4

1.4对满足这些需求的应用进行规划 5

1.5确定最适用的用户界面 6

1.5.1自定义功能区 7

1.5.2自定义快捷菜单 7

1.5.3创建快捷键 7

1.5.4创建自定义对话框 8

1.5.5在工作表中使用ActiveX控件 8

1.5.6开始开发工作 10

1.6关注最终用户 10

1.6.1测试应用 10

1.6.2应用的安全问题 11

1.6.3如何让应用程序看起来更简明美观 13

1.6.4创建用户帮助系统 13

1.6.5将开发成果归档 14

1.6.6给用户发布应用程序 14

1.6.7在必要时对应用进行更新 14

1.7其他开发问题 14

1.7.1用户安装的Excel版本 15

1.7.2语言问题 15

1.7.3系统速度 15

1.7.4显示模式 15

第2章VBA概述 17

2.1宏录制器 17

2.1.1创建你的第一个宏 17

2.1.2比较宏录制的绝对模式和相对模式 20

2.1.3关于宏录制的其他概念 24

2.2 Visual Basic编辑器概述 28

2.2.1了解VBE组件 28

2.2.2使用工程资源管理器 29

2.2.3使用代码窗口 31

2.2.4自定义VBA环境 33

2.2.5“编辑器格式”选项卡 34

2.2.6“通用”选项卡 35

2.2.7“可连接的”选项卡 35

2.3 VBA的基础知识 36

2.3.1了解对象 36

2.3.2了解集合 37

2.3.3了解属性 37

2.4使用Range对象 40

2.4.1找到Range对象的属性 41

2.4.2 Range属性 41

2.4.3 Cells属性 42

2.4.4 Offset属性 44

2.5需要记住的基本概念 45

2.6学习更多信息 46

2.6.1阅读本书剩余的章节 47

2.6.2让Excel来帮助编写宏 47

2.6.3使用帮助系统 47

2.6.4使用对象浏览器 47

2.6.5从网上获取 48

2.6.6利用用户论坛 49

2.6.7访问专家博客 49

2.6.8通过YouTube查找视频 50

2.6.9通过Microsoft OfficeDev Center获取信息 50

2.6.10解析其他的Excel文件 50

2.6.11咨询周围的Excel人才 50

第3章VBA编程基础 51

3.1 VBA语言元素概览 51

3.2注释 53

3.3变量、数据类型和常量 54

3.3.1定义数据类型 55

3.3.2声明变量 56

3.3.3变量的作用域 58

3.3.4使用常量 61

3.3.5使用字符串 62

3.3.6使用日期 62

3.4赋值语句 63

3.5数组 65

3.5.1声明数组 66

3.5.2声明多维数组 66

3.5.3声明动态数组 66

3.6对象变量 67

3.7用户自定义的数据类型 68

3.8内置函数 69

3.9处理对象和集合 71

3.9.1 With-End With结构 72

3.9.2 For Each-Next结构 72

3.10控制代码的执行 74

3.10.1 GoTo语句 74

3.10.2 If-Then结构 75

3.10.3 Select Case结构 78

3.10.4指令块的循环 82

第4章VBA的子过程 89

4.1关于过程 89

4.1.1子过程的声明 90

4.1.2过程的作用域 90

4.2执行子过程 91

4.2.1通过“运行子过程/用户窗体”命令执行过程 92

4.2.2从“宏”对话框执行过程 92

4.2.3用Ctrl+快捷键组合执行过程 93

4.2.4从功能区执行过程 94

4.2.5从自定义快捷菜单中执行过程 94

4.2.6从另一个过程中执行过程 95

4.2.7通过单击对象执行过程 98

4.2.8在事件发生时执行过程 99

4.2.9从“立即窗口”执行过程 100

4.3向过程中传递参数 100

4.4错误处理技术 103

4.4.1捕获错误 104

4.4.2错误处理示例 105

4.5使用子过程的实际示例 108

4.5.1目标 108

4.5.2工程需求 108

4.5.3已经了解的信息 108

4.5.4解决方法 109

4.5.5初步的录制工作 109

4.5.6初始设置 111

4.5.7代码的编写 112

4.5.8排序过程的编写 112

4.5.9更多测试 116

4.5.10修复问题 117

4.5.11实用程序的可用性 120

4.5.12对工程进行评估 121

第5章 创建函数过程 123

5.1子过程与函数过程的比较 123

5.2为什么创建自定义的函数 124

5.3自定义函数示例 124

5.3.1在工作表中使用函数 125

5.3.2在VBA过程中使用函数 125

5.3.3分析自定义函数 126

5.4函数过程 128

5.4.1函数的作用域 129

5.4.2执行函数过程 129

5.5函数过程的参数 131

5.6函数示例 132

5.6.1无参数的函数 132

5.6.2带有一个参数的函数 134

5.6.3带有两个参数的函数 136

5.6.4使用数组作为参数的函数 137

5.6.5带有可选参数的函数 138

5.6.6 返回VBA数组的函数 140

5.6.7返回错误值的函数 142

5.6.8带有不定数量参数的函数 144

5.7模拟Excel的SUM函数 145

5.8扩展后的日期函数 148

5.9函数的调试 149

5.10使用“插入函数”对话框 150

5.10.1使用MacroOptions方法 151

5.10.2指定函数类别 152

5.10.3手动添加函数说明 153

5.11使用加载项存储自定义函数 154

5.12使用Windows API 154

5.12.1 Windows API示例 155

5.12.2确定Windows目录 155

5.12.3检测Shift键 157

5.12.4了解有关API函数的更多信息 158

第6章 了解Excel事件 159

6.1 Excel可以监视的事件类型 159

6.1.1了解事件发生的顺序 160

6.1.2存放事件处理程序的位置 160

6.1.3禁用事件 161

6.1.4输入事件处理代码 162

6.1.5使用参数的事件处理程序 163

6.2工作簿级别的事件 165

6.2.1 Open事件 165

6.2.2 Activate事件 166

6.2.3 SheetActivate事件 166

6.2.4 NewSheet事件 167

6.2.5 BeforeSave事件 167

6.2.6 Deactivate事件 167

6.2.7 BeforePrint事件 168

6.2.8 BeforeClose事件 169

6.3检查工作表事件 171

6.3.1 Change事件 171

6.3.2监视特定单元格区域的修改 172

6.3.3 SelectionChange事件 177

6.3.4 BeforeDoubleClick事件 177

6.3.5 BeforeRightClick事件 178

6.4监视应用程序事件 179

6.4.1启用应用程序级别的事件 180

6.4.2确定工作簿何时被打开 180

6.4.3监视应用程序级别的事件 181

6.5访问与对象无关联的事件 182

6.5.1 OnTime事件 182

6.5.2 OnKey事件 184

第7章VBA编程示例与技巧 189

7.1通过示例学习 189

7.2处理单元格区域 190

7.2.1复制单元格区域 190

7.2.2移动单元格区域 191

7.2.3复制大小可变的单元格区域 191

7.2.4选中或者识别各种类型的单元格区域 193

7.2.5调整单元格区域大小 194

7.2.6提示输入单元格中的值 195

7.2.7在下一个空单元格中输入一个值 196

7.2.8暂停宏的运行以便获得用户选中的单元格区域 197

7.2.9计算选中单元格的数目 199

7.2.10确定选中的单元格区域的类型 199

7.2.11有效地循环遍历选中的单元格区域 201

7.2.12删除所有空行 204

7.2.13任意次数地复制行 205

7.2.14确定单元格区域是否包含在另一个单元格区域内 206

7.2.15 确定单元格的数据类型 207

7.2.16读写单元格区域 208

7.2.17在单元格区域中写入值的更好方法 209

7.2.18传递一维数组中的内容 211

7.2.19将单元格区域传递给Variant类型的数组 211

7.2.20按数值选择单元格 212

7.2.21复制非连续的单元格区域 213

7.3处理工作簿和工作表 215

7.3.1保存所有工作簿 215

7.3.2保存和关闭所有工作簿 216

7.3.3隐藏除选区之外的区域 216

7.3.4创建超链接内容表 217

7.3.5同步工作表 218

7.4 VBA技巧 219

7.4.1切换布尔类型的属性值 219

7.4.2显示日期和时间 220

7.4.3显示友好时间 222

7.4.4获得字体列表 223

7.4.5对数组进行排序 224

7.4.6处理一系列文件 225

7.5用于代码中的一些有用函数 227

7.5.1 FileExists函数 227

7.5.2 FileNameOnly函数 227

7.5.3 PathExists函数 228

7.5.4 RangeNameExists函数 228

7.5.5 SheetExists函数 229

7.5.6 WorkbookIsOpen函数 229

7.5.7检索已经关闭的工作簿中的值 230

7.6一些有用的工作表函数 231

7.6.1返回单元格的格式信息 232

7.6.2会说话的工作表 233

7.6.3显示保存或打印文件的时间 233

7.6.4理解对象的父对象 234

7.6.5计算介于两个值之间的单元格数目 235

7.6.6 确定行或列中最后一个非空的单元格 236

7.6.7字符串与模式匹配 237

7.6.8从字符串中提取第n个元素 238

7.6.9拼写出数字 239

7.6.10多功能函数 240

7.6.11 SHEETOFFSET函数 240

7.6.12返回所有工作表中的最大值 241

7.6.13返回没有重复随机整数元素的数组 242

7.6.14随机化单元格区域 244

7.6.15 对单元格区域进行排序 245

7.7 Windows API调用 246

7.7.1理解API声明 246

7.7.2确定文件的关联性 247

7.7.3确定默认打印机的信息 248

7.7.4确定视频显示器的信息 249

7.7.5读写注册表 250

第Ⅱ部分 高级VBA技术 255

第8章 使用透视表 255

8.1数据透视表示例 255

8.1.1创建数据透视表 256

8.1.2检查录制的数据透视表代码 257

8.1.3整理录制的数据透视表代码 258

8.2创建更复杂的数据透视表 260

8.2.1创建数据透视表的代码 261

8.2.2更复杂数据透视表的工作原理 262

8.3创建多个数据透视表 263

8.4创建转换的数据透视表 266

第9章 使用图表 269

9.1关于图表 269

9.1.1图表的位置 269

9.1.2宏录制器和图表 270

9.1.3 Chart对象模型 270

9.2创建嵌入式图表 271

9.3在图表工作表上创建图表 273

9.4修改图表 273

9.5使用VBA激活图表 274

9.6移动图表 275

9.7使用VBA使图表取消激活 276

9.8确定图表是否被激活 276

9.9从ChartObjects或Charts集合中删除图表 277

9.10循环遍历所有图表 277

9.11调整ChartObjects对象的大小并对齐 280

9.12创建大量图表 281

9.13导出图表 283

9.14修改图表中使用的数据 285

9.14.1基于活动单元格修改图表数据 286

9.14.2用VBA确定图表中使用的单元格区域 287

9.15 使用VBA在图表上显示任意数据标签 289

9.16在用户窗体中显示图表 292

9.17理解图表事件 295

9.17.1使用图表事件的一个示例 295

9.17.2为嵌入式图表启用事件 298

9.17.3示例:在嵌入式图表上使用图表事件 299

9.18 VBA制图技巧 301

9.18.1在整个页面上打印嵌入式图表 301

9.18.2创建未链接的图表 301

9.18.3用MouseOver事件显示文本 303

9.18.4滚动图表 305

9.19使用迷你图 307

第10章 与其他应用程序的交互 311

10.1了解Microsoft Office自动化 311

10.1.1了解绑定概念 311

10.1.2一个简单的自动化示例 313

10.2从Excel中自动执行Access任务 314

10.2.1从Excel中运行Access查询 314

10.2.2从Excel运行Access宏 315

10.3从Excel自动执行Word任务 316

10.3.1将Excel数据传递给Word文档 316

10.3.2模拟Word文档的邮件合并功能 317

10.4从Excel自动执行PowerPoint任务 319

10.4.1将Excel数据发送到PowerPoint演示文稿中 319

10.4.2将所有Excel图表发送到PowerPoint演示文稿中 321

10.4.3将工作表转换成PowerPoint演示文稿 322

10.5从Excel自动执行Outlook任务 323

10.5.1以附件形式发送活动工作簿 324

10.5.2以附件形式发送指定单元格区域 324

10.5.3以附件形式发送指定的单个工作表 326

10.5.4发送给联系人列表中的所有Email地址 327

10.6从Excel启动其他应用程序 328

10.6.1使用VBA的Shell函数 328

10.6.2使用Windows的ShellExecute API函数 330

10.6.3使用AppActivate语句 331

10.6.4激活“控制面板”对话框 332

第11章 处理外部数据和文件 335

11.1处理外部数据连接 335

11.1.1手动创建连接 335

11.1.2手动编辑数据连接 338

11.1.3使用VBA创建动态连接 339

11.1.4遍历工作簿中的所有连接 340

11.2使用ADO和VBA来提取外部数据 342

11.2.1连接字符串 342

11.2.2声明记录集 343

11.2.3引用ADO对象库 344

11.2.4以编程方式使用ADO连接Access 344

11.2.5对活动工作簿使用ADO 345

11.3处理文本文件 348

11.3.1打开文本文件 348

11.3.2读取文本文件 349

11.3.3编写文本文件 349

11.3.4获取文件序号 349

11.3.5确定或设置文件位置 349

11.3.6读写语句 350

11.4文本文件操作示例 350

11.4.1导入文本文件的数据 350

11.4.2将单元格区域的数据导出到文本文件 351

11.4.3将文本文件的内容导出到单元格区域 352

11.4.4记录Excel日志的用法 353

11.4.5筛选文本文件 354

11.5执行常见的文件操作 354

11.5.1使用与VBA文件相关的指令 355

11.5.2使用FileSystemObject对象 359

11.6压缩和解压缩文件 361

11.6.1压缩文件 362

11.6.2解压缩文件 363

第Ⅲ部分 操作用户窗体 367

第12章 使用自定义对话框 367

12.1创建用户窗体之前需要了解的内容 367

12.2使用输入框 367

12.2.1 VBA的InputBox函数 368

12.2.2 Excel的InputBox方法 370

12.3 VBA的MsgBox函数 373

12.4 Excel的GetOpenFilename方法 377

12.5 Excel的GetSaveAsFilename方法 380

12.6提示输入目录名称 380

12.7显示Excel的内置对话框 381

12.8显示数据记录单 383

12.8.1使得数据记录单变得可以访问 383

12.8.2通过使用VBA来显示数据记录单 384

第13章 用户窗体概述 385

13.1 Excel如何处理自定义对话框 385

13.2插入新的用户窗体 386

13.3向用户窗体中添加控件 386

13.4“工具箱”中的控件 387

13.4.1复选框 387

13.4.2组合框 388

13.4.3命令按钮 388

13.4.4框架 388

13.4.5图像 389

13.4.6 标签 389

13.4.7列表框 389

13.4.8多页 389

13.4.9选项按钮 389

13.4.10 RefEdit 389

13.4.11滚动条 390

13.4.12数值调节钮 390

13.4.13 TabStrip 390

13.4.14文本框 390

13.4.15切换按钮 390

13.5调整用户窗体的控件 391

13.6调整控件的属性 393

13.6.1使用“属性”窗口 393

13.6.2共同属性 394

13.6.3满足键盘用户的需求 396

13.7显示用户窗体 397

13.7.1调整显示位置 398

13.7.2显示非模态的用户窗体 398

13.7.3显示基于变量的用户窗体 398

13.7.4加载用户窗体 399

13.7.5关于事件处理程序 399

13.8关闭用户窗体 399

13.9创建用户窗体的示例 400

13.9.1创建用户窗体 401

13.9.2编写代码显示对话框 403

13.9.3测试对话框 404

13.9.4添加事件处理程序 405

13.9.5完成对话框 406

13.10理解用户窗体的事件 407

13.10.1了解事件 407

13.10.2用户窗体的事件 408

13.10.3数值调节钮的事件 408

13.10.4数值调节钮与文本框配套使用 410

13.11引用用户窗体的控件 412

13.12自定义“工具箱” 413

13.12.1在“工具箱”中添加新页 413

13.12.2自定义或组合控件 413

13.12.3添加新的ActiveX控件 415

13.13创建用户窗体的模板 415

13.14用户窗体问题检测列表 416

第14章 用户窗体示例 417

14.1创建用户窗体式菜单 417

14.1.1在用户窗体中使用命令按钮 417

14.1.2在用户窗体中使用列表框 418

14.2从用户窗体选中单元格区域 419

14.3创建欢迎界面 421

14.4禁用用户窗体的关闭按钮 423

14.5改变用户窗体的大小 424

14.6在用户窗体中缩放和滚动工作表 425

14.7列表框技巧 427

14.7.1向列表框控件中添加条目 428

14.7.2确定列表框中选中的条目 432

14.7.3确定列表框中的多个选中条目 433

14.7.4单个列表框中的多个列表 434

14.7.5列表框条目的转移 435

14.7.6在列表框中移动条目 436

14.7.7使用多列的列表框控件 438

14.7.8使用列表框选中工作表中的行 440

14.7.9使用列表框激活工作表 442

14.7.10通过文本框来筛选列表框 444

14.8在用户窗体中使用多页控件 446

14.9使用外部控件 448

14.10使标签动画化 450

第15章 高级用户窗体技术 453

15.1非模态对话框 453

15.2显示进度条 457

15.2.1创建独立的进度条 458

15.2.2集成到用户窗体中的进度条 461

15.2.3创建非图形化进度条 465

15.3创建向导 467

15.3.1为向导设置多页控件 468

15.3.2在向导用户窗体中添加按钮 468

15.3.3编写向导按钮的程序 468

15.3.4编写向导中的相关代码 470

15.3.5使用向导执行任务 471

15.4模仿MsgBox函数 472

15.4.1模仿MsgBox函数:MyMsgBox函数的代码 473

15.4.2 MyMsgBox函数的工作原理 474

15.4.3使用MyMsgBox 函数 476

15.5带有可移动控件的用户窗体 476

15.6没有标题栏的用户窗体 477

15.7使用用户窗体模拟工具栏 479

15.8使用用户窗体来模仿任务面板 481

15.9可调整大小的用户窗体 482

15.10用一个事件处理程序处理多个用户窗体控件 485

15.11在用户窗体中选择颜色 488

15.12在用户窗体中显示图表 490

15.12.1将图表保存为GIF文件 491

15.12.2更改图像控件的Picture属性 491

15.13使用户窗体半透明 491

15.14用户窗体上的数字推盘 493

15.15 用户窗体上的电动扑克 494

第Ⅳ部分 开发Excel应用程序 497

第16章 创建和使用加载项 497

16.1什么是加载项 497

16.1.1加载项与标准工作簿的比较 497

16.1.2创建加载项的原因 498

16.2理解Excel的加载项管理器 500

16.3创建加载项 501

16.4加载项示例 502

16.4.1为加载项示例添加描述信息 503

16.4.2创建加载项 503

16.4.3安装加载项 504

16.4.4测试加载项 505

16.4.5发布加载项 505

16.4.6修改加载项 505

16.5比较XLAM和XLSM文件 506

16.5.1 XLAM文件中的VBA集合成员 506

16.5.2 XLSM和XLAM文件的可见性 507

16.5.3 XLSM和XLAM文件的工作表和图表工作表 507

16.5.4访问加载项中的VBA过程 508

16.6用VBA操作加载项 511

16.6.1向AddIns集合中添加项 511

16.6.2从AddIns集合中删除项 512

16.6.3 AddIn对象属性 513

16.6.4作为工作簿访问加载项 516

16.6.5 AddIn对象事件 516

16.7优化加载项的性能 516

16.8加载项的特殊问题 517

16.8.1确保加载项已经安装 517

16.8.2从加载项中引用其他文件 519

16.8.3为加载项检测适用的Excel版本 519

第17章 使用功能区 521

17.1功能区基础 521

17.2自定义功能区 522

17.2.1向功能区中添加按钮 523

17.2.2向快速访问工具栏中添加按钮 525

17.2.3自定义功能区的局限性 526

17.3创建自定义的功能区 527

17.3.1将按钮添加到现有的选项卡中 527

17.3.2向已有的选项卡中添加复选框 532

17.3.3功能区控件演示 535

17.3.4 dynamicMenu控件示例 542

17.3.5关于自定义功能区的其他内容 544

17.4 VBA和功能区 546

17.4.1访问功能区控件 546

17.4.2使用功能区 546

17.4.3激活选项卡 548

17.5创建老式工具栏 549

17.5.1 Excel 2007及后续版本中老式工具栏的局限性 549

17.5.2创建工具栏的代码 549

第18章 使用快捷菜单 553

18.1命令栏简介 553

18.1.1命令栏的类型 553

18.1.2列出快捷菜单 554

18.1.3引用命令栏 555

18.1.4引用命令栏中的控件 555

18.1.5命令栏控件的属性 557

18.1.6显示所有的快捷菜单项 557

18.2使用VBA自定义快捷菜单 559

18.2.1快捷菜单和单文档界面 559

18.2.2重置快捷菜单 561

18.2.3禁用快捷菜单 562

18.2.4禁用快捷菜单项 562

18.2.5向“单元格”快捷菜单中添加一个新项 563

18.2.6向快捷菜单添加一个子菜单 565

18.2.7将快捷菜单限制到单个工作簿 567

18.3快捷菜单与事件 567

18.3.1自动添加和删除菜单 568

18.3.2禁用或隐藏快捷菜单项 568

18.3.3创建一个上下文相关的快捷菜单 568

第19章 为应用程序提供帮助 571

19.1 Excel应用程序的“帮助” 571

19.2使用Excel组件的帮助系统 573

19.2.1为帮助系统使用单元格批注 573

19.2.2为帮助系统使用文本框 574

19.2.3使用工作表来显示帮助文本 575

19.2.4在用户窗体中显示帮助信息 576

19.3在Web浏览器中显示“帮助” 580

19.3.1使用HTML文件 580

19.3.2使用一个MHTML文件 581

19.4使用HTML帮助系统 582

19.4.1使用Help方法来显示HTML帮助信息 585

19.4.2将“帮助”文件与应用程序相关联 585

19.4.3将一个帮助主题与一个VBA函数相关联 586

第20章 理解类模块 589

20.1什么是类模块 589

20.1.1内置的类模块 590

20.1.2自定义类模块 590

20.2创建NumLock类 591

20.2.1插入类模块 591

20.2.2给类模块添加VBA代码 592

20.2.3使用CNumLock类 593

20.3属性、方法和事件编程 594

20.3.1对象属性编程 594

20.3.2对象的方法编程 595

20.3.3类模块事件 596

20.4 QueryTable事件 596

20.5创建存储类的类 599

20.5.1创建CSalesRep和CSalesReps类 599

20.5.2创建CInvoice和CInvoices类 601

20.5.3用对象填充父类 602

20.5.4计算佣金 603

第21章 兼容性问题 605

21.1什么是兼容性 605

21.2兼容性问题的类型 606

21.3避免使用新功能 607

21.4在Mac机器上是否可用 608

21.5处理64位Excel 609

21.6创建一个国际化应用程序 610

21.6.1多语言应用程序 611

21.6.2 VBA语言的考虑 612

21.6.3使用本地属性 612

21.6.4系统设置识别 613

21.6.5日期和时间设置 615

第Ⅴ部分 附录 619

附录A VBA语句和函数引用 619